免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
canvas元素簡易教程(1)(大部分轉自火狐,自己只寫了簡單的代碼分析)
首先我想先說一下canvas的瀏覽器支持性,IE對它是不支持的,所以如果希望在IE下使用,請引入開源項目explorercanvas(下載網址http://code.google.com/p/explorercanvas/downloads/list)。在引入后請用一下代碼進行嗅探:<head><!--[id IE]><script src="excanvas.js"></script><![endif]--></head>

canvas的使用與image元素頗為一致,都是在指定的位置開辟出一個承載的容器。它只有兩個屬性,width與height,這兩個屬性都是可選的,如果都沒有賦值默認為寬300高150像素。

可以用id標示canvas元素,也可以為其如同一張普通的圖片一樣設定樣式,但是這些樣式對其產生的圖像沒有什么影響。如果不指定樣式,其默認為透明。

在初始狀態(tài)下canvas是空白的,所以我們需要用腳本進行繪圖。在繪圖之前,我們需要渲染上下文,它可以通過canvas元素對象的getContext方法來獲取,與此同時我們還可以得到畫圖所需要用到的函數。getContext() 接受一個用于描述其類型的值作為參數,在目前似乎只支持2d一個屬性,將來也許在3d繪圖得到支持以后可以使用其它的參數,但目前先不要去嘗試了。

例:

<canvas id="tutorial" ...></canvas>

<script type="text/javascript">

var canvas = document.getElementById('tutorial');

var ctx = canvas.getContext('2d');

</script>

對于canvas元素,我們必須考慮瀏覽器的支持問題,對于較新的canvas元素,瀏覽器對它的支持并不完全,因此我們應該采取一些措施。最簡單的方法就是在標簽中寫下失敗的提示信息,則會在頁面展示這些信息。此外,canvas在safari瀏覽器中不需要加尾標簽,但是在FF中并不支持這樣,我們應該統(tǒng)一加上這個尾標簽。

瀏覽器的支持可以進行JS檢測,代碼如下:

var canvas = document.getElementById('tutorial');

if (canvas.getContext){

? var ctx = canvas.getContext('2d');

? // drawing code here

} else {

? // canvas-unsupported code here

}

在此貼下mozilla的教學代碼模板,此后所有代碼均采用mozilla的教學代碼,并非筆者較懶,mozilla的教學代碼確實要略好一點,望諒解。

<html>

? <head>

??? <title>Canvas tutorial</title>

??? <script type="text/javascript">

????? function draw(){

??????? var canvas = document.getElementById('tutorial');

??????? if (canvas.getContext){

????????? var ctx = canvas.getContext('2d');

??????? }

????? }

??? </script>

??? <style type="text/css">

????? canvas { border: 1px solid black; }

??? </style>

? </head>

? <body onload="draw();">

??? <canvas id="tutorial" width="150" height="150"></canvas>

? </body>

</html>

通過上述的模板我們可以開始canvas的第一步學習了,在代碼中我們看到了draw的函數,它被置于頁面完全加載后執(zhí)行。當然我們并不推薦這樣書寫代碼,應該在文件頭以JS的形式進行書寫:

window.onload = draw();

這樣的書寫方式比較合乎規(guī)范,也達到了頁面分離原則。因此我們將代碼修改為:

<html>

? <head>

??? <title>Canvas tutorial</title>

??? <script type="text/javascript">

????? function draw(){

??????? var canvas = document.getElementById('tutorial');

??????? if (canvas.getContext){

????????? var ctx = canvas.getContext('2d');

??????? }

????? }

window.onload = draw();

??? </script>

??? <style type="text/css">

????? canvas { border: 1px solid black; }

??? </style>

? </head>

? <body>

??? <canvas id="tutorial" width="150" height="150"></canvas>

? </body>

</html>

在此處提出window.onload與draw的次序問題,WEB前端代碼是逐行執(zhí)行的,對函數的前后順序按理必須嚴格,但是大部分瀏覽器都會有這樣的一個優(yōu)化,也就是如果先讀取window.onload = draw();一句時,會等待之后的draw函數的載入,當頁面加載完成之前載入該函數則可以執(zhí)行。不過我建議,必須按順序書寫,火狐瀏覽器對這種代碼的優(yōu)化是不支持的,而前端的JS要求是兼容所有的瀏覽器。所以,標準必須遵守。

好了,canvas繪畫的道路正式開始了,讓我們期待吧~

轉載于:https://www.cnblogs.com/xiao-yao/archive/2012/02/08/2342112.html

來源:https://www.icode9.com/content-4-291051.html
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
HTML5之Canvas繪圖
HTML5 Canvas像素處理使用接口介紹
使用 HTML5 canvas 繪制精美的圖形
JavaScript圖形實例:黃金螺旋線
JavaScript圖形實例:窗花圖案
JavaScript圖形實例:曲線方程
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服