HTML5邊玩邊學(xué)(1)畫(huà)布實(shí)現(xiàn)方法
發(fā)布時(shí)間:2010-09-21 19:52:53 作者:佚名
我要評(píng)論

Html5 引入了一個(gè)新的
一、<canvas>標(biāo)簽
Html5 引入了一個(gè)新的 <canvas> 標(biāo)簽,這個(gè)標(biāo)簽所代表的區(qū)域就好象一塊畫(huà)布,你的所有圖形繪制最后都要在這塊畫(huà)布上呈現(xiàn)。有了這個(gè)標(biāo)簽,瀏覽器的圖形表現(xiàn)力被極大的提升,F(xiàn)lash 和 SilverLight 有沒(méi)有感到威脅呢?
新聞鏈接:Google聲稱(chēng)Chrome7瀏覽器將提速60倍
<canvas>標(biāo)簽的用法非常簡(jiǎn)單,如下:
<canvas id="tutorial" width="150" height="150" style="background-color:red;">
你的瀏覽器不支持 Canvas 標(biāo)簽
</canvas>
<canvas>標(biāo)簽和普通的 HTML 標(biāo)簽沒(méi)有多大的區(qū)別,你可以設(shè)置它的寬度和高度,可以通過(guò) CSS 設(shè)置它的背景色、邊框樣式等等。
你可以在 這里 找到關(guān)于 <canvas> 標(biāo)簽的更多內(nèi)容。
標(biāo)簽中間的內(nèi)容是替換內(nèi)容,如果用戶的瀏覽器不支持 <canvas> 標(biāo)簽,這段內(nèi)容就會(huì)被顯示出來(lái);如果用戶的瀏覽器支持 <canvas> 標(biāo)簽,則這段內(nèi)容將被忽略。
上面的 <canvas> 代碼顯示效果如下:
你的瀏覽器不支持 Canvas 標(biāo)簽
如果你用的是IE瀏覽器,可能只能看到一個(gè)提示;如果你用的是谷歌瀏覽器或者火狐瀏覽器,你就可以看到一個(gè)紅色的方塊區(qū)域。
二、渲染上下文 Rendering Context
其實(shí)光有 <canvas> 標(biāo)簽我們并不能作任何事情,玩過(guò) Windows 編程的同學(xué)都知道,在 Windows 里面繪圖先要得到一個(gè)設(shè)備上下文 DC ,在 <canvas> 標(biāo)簽上繪圖也需要先得到一個(gè)渲染上下文,我們的圖形并不是直接畫(huà)到屏幕上的,而是先畫(huà)到上下文(Context)上,然后再刷新到屏幕上面的。
題外話: 為什么要整出一個(gè)“上下文”這么復(fù)雜的概念呢?因?yàn)橛辛松舷挛膶?duì)象,我們就可以讓各種不同的圖形設(shè)備在我們眼里面看起都是一個(gè)樣,我們只需要專(zhuān)注于繪圖,其他的工作就讓操作系統(tǒng)和瀏覽器去操心吧,說(shuō)白了就是把各式各樣的具體變成統(tǒng)一的抽象,從而減輕我們的負(fù)擔(dān)。
獲取上下文非常簡(jiǎn)單,只需要如下兩行代碼:
var canvas = document.getElementById('tutorial');
var ctx = canvas.getContext('2d');
首先獲取 canvas 對(duì)象,然后調(diào)用 canvas 對(duì)象的 getContext 方法,這個(gè)方法目前只能傳入?yún)?shù) "2d",不久的將來(lái)他可能會(huì)支持參數(shù) "3d",你一定明白那意味著什么,讓我們期待吧。
getContext 方法返回一個(gè) CanvasRenderingContext2D 對(duì)象 ,即渲染上下文對(duì)象,你可以在 這里 找到關(guān)于它的更多內(nèi)容,都是一些繪圖方法。
三、瀏覽器支持
除了在那些不支持的瀏覽器上顯示替用內(nèi)容之外,我們還可以通過(guò)腳本的方式來(lái)檢查瀏覽器是否支持 canvas ,方法很簡(jiǎn)單,判斷 getContext 函數(shù)是否存在即可,代碼如下:
var canvas = document.getElementById('tutorial');
if (canvas.getContext){
alert("支持 <canvas> 標(biāo)簽");
} else {
alert("不支持 <canvas> 標(biāo)簽");
}
四、一個(gè)小例子
下面將用 HTML5 的繪圖功能演示一個(gè)上下移動(dòng)的線條的例子, 具體的代碼將在后續(xù)內(nèi)容中給出
提示:您可以先修改部分代碼再運(yùn)行
你的瀏覽器不支持 <canvas>標(biāo)簽,請(qǐng)使用 Chrome 瀏覽器 或者 FireFox 瀏覽器
Html5 引入了一個(gè)新的 <canvas> 標(biāo)簽,這個(gè)標(biāo)簽所代表的區(qū)域就好象一塊畫(huà)布,你的所有圖形繪制最后都要在這塊畫(huà)布上呈現(xiàn)。有了這個(gè)標(biāo)簽,瀏覽器的圖形表現(xiàn)力被極大的提升,F(xiàn)lash 和 SilverLight 有沒(méi)有感到威脅呢?
新聞鏈接:Google聲稱(chēng)Chrome7瀏覽器將提速60倍
<canvas>標(biāo)簽的用法非常簡(jiǎn)單,如下:
復(fù)制代碼
代碼如下:<canvas id="tutorial" width="150" height="150" style="background-color:red;">
你的瀏覽器不支持 Canvas 標(biāo)簽
</canvas>
<canvas>標(biāo)簽和普通的 HTML 標(biāo)簽沒(méi)有多大的區(qū)別,你可以設(shè)置它的寬度和高度,可以通過(guò) CSS 設(shè)置它的背景色、邊框樣式等等。
你可以在 這里 找到關(guān)于 <canvas> 標(biāo)簽的更多內(nèi)容。
標(biāo)簽中間的內(nèi)容是替換內(nèi)容,如果用戶的瀏覽器不支持 <canvas> 標(biāo)簽,這段內(nèi)容就會(huì)被顯示出來(lái);如果用戶的瀏覽器支持 <canvas> 標(biāo)簽,則這段內(nèi)容將被忽略。
上面的 <canvas> 代碼顯示效果如下:
你的瀏覽器不支持 Canvas 標(biāo)簽
如果你用的是IE瀏覽器,可能只能看到一個(gè)提示;如果你用的是谷歌瀏覽器或者火狐瀏覽器,你就可以看到一個(gè)紅色的方塊區(qū)域。
二、渲染上下文 Rendering Context
其實(shí)光有 <canvas> 標(biāo)簽我們并不能作任何事情,玩過(guò) Windows 編程的同學(xué)都知道,在 Windows 里面繪圖先要得到一個(gè)設(shè)備上下文 DC ,在 <canvas> 標(biāo)簽上繪圖也需要先得到一個(gè)渲染上下文,我們的圖形并不是直接畫(huà)到屏幕上的,而是先畫(huà)到上下文(Context)上,然后再刷新到屏幕上面的。
題外話: 為什么要整出一個(gè)“上下文”這么復(fù)雜的概念呢?因?yàn)橛辛松舷挛膶?duì)象,我們就可以讓各種不同的圖形設(shè)備在我們眼里面看起都是一個(gè)樣,我們只需要專(zhuān)注于繪圖,其他的工作就讓操作系統(tǒng)和瀏覽器去操心吧,說(shuō)白了就是把各式各樣的具體變成統(tǒng)一的抽象,從而減輕我們的負(fù)擔(dān)。
獲取上下文非常簡(jiǎn)單,只需要如下兩行代碼:
var canvas = document.getElementById('tutorial');
var ctx = canvas.getContext('2d');
首先獲取 canvas 對(duì)象,然后調(diào)用 canvas 對(duì)象的 getContext 方法,這個(gè)方法目前只能傳入?yún)?shù) "2d",不久的將來(lái)他可能會(huì)支持參數(shù) "3d",你一定明白那意味著什么,讓我們期待吧。
getContext 方法返回一個(gè) CanvasRenderingContext2D 對(duì)象 ,即渲染上下文對(duì)象,你可以在 這里 找到關(guān)于它的更多內(nèi)容,都是一些繪圖方法。
三、瀏覽器支持
除了在那些不支持的瀏覽器上顯示替用內(nèi)容之外,我們還可以通過(guò)腳本的方式來(lái)檢查瀏覽器是否支持 canvas ,方法很簡(jiǎn)單,判斷 getContext 函數(shù)是否存在即可,代碼如下:
復(fù)制代碼
代碼如下:var canvas = document.getElementById('tutorial');
if (canvas.getContext){
alert("支持 <canvas> 標(biāo)簽");
} else {
alert("不支持 <canvas> 標(biāo)簽");
}
四、一個(gè)小例子
下面將用 HTML5 的繪圖功能演示一個(gè)上下移動(dòng)的線條的例子, 具體的代碼將在后續(xù)內(nèi)容中給出
提示:您可以先修改部分代碼再運(yùn)行
你的瀏覽器不支持 <canvas>標(biāo)簽,請(qǐng)使用 Chrome 瀏覽器 或者 FireFox 瀏覽器
相關(guān)文章
- 這篇文章主要介紹了HTML5 畫(huà)布canvas使用方法,canvas 是一個(gè)矩形區(qū)域,可以控制其每一像素,介紹了canvas的多種功能,感興趣的小伙伴們可以參考一下2016-03-18
使用分層畫(huà)布來(lái)優(yōu)化HTML5渲染的教程
這篇文章主要介紹了使用分層畫(huà)布來(lái)優(yōu)化HTML5渲染的教程,來(lái)自于IBM官方網(wǎng)站開(kāi)發(fā)者技術(shù)文檔,需要的朋友可以參考下2015-05-08- 本文介紹了JS和html5實(shí)現(xiàn)畫(huà)布旋轉(zhuǎn)效果示例,大家參考使用吧2014-01-27
用html5的canvas畫(huà)布繪制貝塞爾曲線完整代碼
html5的canvas很強(qiáng)大利用其畫(huà)布可輕松繪制貝塞爾曲線,為大家以后使用方便,特于此分享實(shí)現(xiàn)代碼,有此需求的朋友可以參考下2013-08-14html5的畫(huà)布canvas——畫(huà)出簡(jiǎn)單的矩形、三角形實(shí)例代碼
有兩種形式,一種是描邊(fill),一種是填充(stroke),具體的實(shí)現(xiàn)代碼如下,感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助2013-06-09html5的畫(huà)布canvas——畫(huà)出弧線、旋轉(zhuǎn)的圖形實(shí)例代碼+效果圖
在做旋轉(zhuǎn)操作之前一定要理解一句話:旋轉(zhuǎn)的是畫(huà)布的坐標(biāo)系而不是圖形本身,首先認(rèn)識(shí)一下畫(huà)圓的坐標(biāo):中心、起始角、結(jié)束角;接下來(lái)的就很簡(jiǎn)單了2013-06-09Html5畫(huà)布_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Html5畫(huà)布,canvas 元素用于在網(wǎng)頁(yè)上繪制圖形。有興趣的小伙伴可以一起來(lái)了解一下2017-07-13