<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 48,comments - 156,trackbacks - 0

    一、<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聲稱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è)樣,我們只需要專注于繪圖,其他的工作就讓操作系統(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)容中給出

    你的瀏覽器不支持 <canvas>標(biāo)簽,請(qǐng)使用 Chrome 瀏覽器 或者 FireFox 瀏覽器

     

    版權(quán)聲明:本文為原創(chuàng)文章,作者保留所有權(quán)利!歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者左洸和出處博客園

    //==========================================

    posted on 2010-09-17 23:45 左洸 閱讀(2927) 評(píng)論(2)  編輯  收藏 所屬分類: HTML5

    FeedBack:
    # re: HTML5邊玩邊學(xué)(1):畫(huà)布[未登錄](méi)
    2010-10-08 16:36 | aaa
    怎么越點(diǎn)開(kāi)始越快,還停不了  回復(fù)  更多評(píng)論
      
    # re: HTML5邊玩邊學(xué)(1):畫(huà)布
    2010-10-11 17:04 | Tkk
    @aaa
    因?yàn)槟泓c(diǎn)一次就啟動(dòng)一個(gè)setTimeout, 使它上下的速度加大了  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 亚洲欧美国产精品专区久久| 黑人大战亚洲人精品一区| 亚洲男人第一av网站| 国产成人精品日本亚洲专区61| 亚洲国产精品视频| 亚洲国产一成久久精品国产成人综合 | 亚洲依依成人亚洲社区| 亚洲AV无码一区二区三区牛牛| 国产色在线|亚洲| 亚洲国产精品免费观看| 亚洲爆乳少妇无码激情| 国产精品亚洲а∨无码播放麻豆| 国产精品亚洲天堂| 一级做a爰全过程免费视频毛片| 久久www免费人成精品香蕉| 两个人看的www高清免费观看| 免费日本一区二区| 精品无码人妻一区二区免费蜜桃| 最近中文字幕大全免费视频 | 国产精品福利在线观看免费不卡| 精品一区二区三区免费视频| 99精品视频在线观看免费| 免费一级不卡毛片| 久久久久久精品免费免费自慰| 免费在线观看的网站| 国产zzjjzzjj视频全免费| 亚洲色偷偷狠狠综合网| 亚洲av永久无码精品秋霞电影影院| 久久亚洲精品无码AV红樱桃| 亚洲精品无码日韩国产不卡?V| 亚洲一区二区三区AV无码| 久久丫精品国产亚洲av不卡| 亚洲AV无码乱码麻豆精品国产| 亚洲AV永久无码精品一福利| 成在线人视频免费视频| 91成人在线免费观看| 色吊丝永久在线观看最新免费| 久久亚洲国产精品五月天婷| 亚洲综合日韩中文字幕v在线| 亚洲中文字幕无码mv| 成人免费视频一区二区|