用wz_jsgraphics.js(javascript圖形庫)進行畫向量圖,相容多瀏覽器

來源:互聯網
上載者:User

 

★ 瀏覽器的相容性

Linux 系統 :
Browsers with Gecko-Engine (Mozilla, Netscape 6+, Galeon), Konqueror 3.0.3 ( 非常慢 ), Netscape 4, Opera 5 and 6.

Windows 系統 :
Gecko-Browsers, IE 4, 5 and 6, Netscape 4, Opera 5, 6 and 7.

說明:如果在網頁全部載入完成後,使用這個向量圖形庫進行繪製,在 Opera 版本 7 以前的瀏覽器中不會執行, Netscape 版本 4 也不會執行。相反,當 HTML 頁面正在被解析時, 使用這個圖形庫進行繪製是全部瀏覽器均能做到的。

★ 怎樣使用這個向量圖形庫?

 

1 .包含這個庫

插入下面的代碼到你的 html 檔案的開頭部分(在 <head> 和 </head> 之間):

<script type="text/javascript" src="wz_jsgraphics.js"></script>

2 .使用層( div 或 layer )作為畫布( canvases )
如果是當頁面正被載入時,直接在 html 頁面中繪製,那麼這個步驟不是必須的。

如果在頁面載入完成後繪製,應該設定幾個具有絕對座標的層,作為你的畫布,每一個層應該有一個唯一的 id:
<div id="myCanvas" style="position:relative;height:250px;width:100%;"></div>
...
<div id="anotherCanvas" style="position:relative;height:100px;width:300px;"></div>

3 .下載並儲存這個圖形庫

到這個地址 http://www.walterzorn.com/scripts/wz_jsgraphics.zip 下載,將解壓後的 wz_jagraphics.js 與你的 html 檔案放至相同的目錄中,如果你的 wz_jagraphics.js 與 html 檔案處於不同的目錄下,記得在 src=”wz_jsgraphics.js” 中指示 wz_jagraphics.js 的相對路徑。

★ 怎樣使用這個向量圖形庫中的繪製函數?

1 建立一個 jsGraphics 對象

 

a) 在頁面完全載入後繪製:

(這種方式不會在 Netscape 版本 4 和 Opera 版本小於 7 的瀏覽器中執行)

還記得前面用 div 元素建立的畫布嗎?看下面的樣本, 需要為 div 建立相應的 jsGraphics 對象,這些代碼必須插入到相關的 div 元素結束標誌 </div> 後面, 但必須在 </body> 的前面, div 元素的 id 作為 new jsGraphics(); 的構造參數,像下面這樣:

<script type="text/javascript">
<!--

var jg = new jsGraphics("myCanvas");

//-->
</script>

如果有多個 div 元素,每一個 div 都需要有它自已的 jsGraphics 對象:

<script type="text/javascript">
<!--

var jg = new jsGraphics("myCanvas");
var jg2 = new jsGraphics("anotherCanvas");

//-->
</script>

b )在頁面載入的時候繪製
(在 Netscape 4 和 Opera 5/6 可以執行)

只需要將構造參數設為空白:

<script type="text/javascript">
<!--

var jg_doc = new jsGraphics();

//-->
</script>

你可以選擇 jg,jg2 或 jg_doc 其它的變數名,只要不違反 Javascript 的命名規則就可以。

2. 圖形繪製函數

 

為確保所有瀏覽器能正確執行, 這裡選擇頁面載入時進行繪製,即上文的 b 方式

一旦產生這些繪圖物件(在這個樣本中 jg, jg2 或 jg_doc ),就可以使用它來調用繪製圖形的方法。由繪圖物件所繪製的圖形將會在相關的 div 元素上顯示(採用上文 a 方式構造繪圖物件):

<script type="text/javascript">
<!--
function myDrawFunction()
{
jg_doc.setColor("#00ff00"); // 選擇綠色
jg_doc.fillEllipse(100, 200, 100, 180); // 座標點相對於文檔 (document)
jg_doc.setColor("maroon");
jg_doc.drawPolyline(new Array(50, 10, 120), new Array(10, 50, 70));
jg_doc.paint(); // 注意:直接在文檔上繪製,而不與某個 div 關聯 ,

jg.setColor("#ff0000"); // 選擇紅色
jg.drawLine(10, 113, 220, 55); // 座標點相對於 div 元素 "myCanvas"
jg.setColor("#0000ff"); // 選擇藍色
jg.fillRect(110, 120, 30, 60);
jg.paint();

jg2.setColor("#0000ff"); // 選擇藍色
jg2.drawEllipse(10, 50, 30, 100);
jg2.drawRect(400, 10, 100, 50);
jg2.paint();
}

var jg_doc = new jsGraphics(); // 直接在文檔上繪製
var jg = new jsGraphics("myCanvas");
var jg2 = new jsGraphics("anotherCanvas");

myDrawFunction();

//-->
</script>

開始畫時應首先選擇畫筆顏色,否則,畫筆的顏色取預設值-黑色。座標值作為繪製圖形方法的參數,如果採用上文的 a 方式構造繪圖物件,那麼座標值是相對於 div 元素的左上方的。每一個畫布(繪圖物件),它的 paint 方法必須被顯示的調用以產生 html 格式的圖形,否則,在你的螢幕上什麼都不會發生。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.