亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > HTML > 正文

HTML5 Canvas概述

2020-03-24 19:21:35
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
canvas 是一個(gè)新的html' target='_blank'>HTML元素,這個(gè)元素可以被Script語(yǔ)言(通常是JavaScript)用來(lái)繪制圖形。例如可以用它來(lái)畫圖、合成圖象、或做簡(jiǎn)單的(和不那么簡(jiǎn)單的)動(dòng)畫。右面的圖象展示了一些 canvas 的應(yīng)用示例,我們將會(huì)在此教程中看到他們的實(shí)現(xiàn)。 canvas 最先在蘋果公司(Apple)的Mac OS X Dashboard上被引入,而后被應(yīng)用于Safari?;贕ecko1.8的瀏覽器,例如Firefox 1.5,也支持這個(gè)新元素。元素 canvas 是WhatWG Web applications 1.0也就是大家都知道的HTML 5標(biāo)準(zhǔn)規(guī)范的一部分。 在本教程中,我將試著講述如何在你自己的網(wǎng)頁(yè)中使用 canvas 元素。提供的示例應(yīng)該會(huì)給你些清晰概念,即用 canvas 能做些什么的。這些示例也可作為你應(yīng)用 canvas 的起點(diǎn)。 開始使用之前
用元素 canvas 并不難,只要你具有HTML和 JavaScript的基礎(chǔ)知識(shí)。 如上所述,并不是所有現(xiàn)代瀏覽器都支持 canvas 元素,所以你需要 Firefox 1.5或更新版本、或者其他基于Gecko的瀏覽器例如Opera 9、或者最近版本的Safari才能看到所有示例的動(dòng)作。 canvas 元素Let's start this tutorial by looking at the canvas element itself.
讓我們從 canvas 元素的定義開始吧。 canvas id= tutorial width= 150 height= 150 /canvas This looks a lot like the img element, the only difference is that it doesn't have the src and alt attributes. canvas 看起來(lái)很像 img ,唯一不同就是它不含 src 和 alt 屬性。The canvas element has only two attributes - width and height. These are both optional and can also be set using DOM properties or CSS rules.它只有兩個(gè)屬性,width 和 height,兩個(gè)都是可選的,并且都可以 DOM 或者 CSS 來(lái)設(shè)置。 When no width and height attributes are specified, the canvas will initially be 300 pixels wide and 150 pixels high.如果不指定width 和 height,默認(rèn)的是寬300像素,高150像素。The element can be sized arbitrarily by CSS, but during rendering the image is scaled to fit its layout size. (If your renderings seem distorted, try specifying your width and height attributes explicitly in the canvas attributes, and not with CSS.)雖然可以通過(guò) CSS 來(lái)調(diào)整canvas的大小,但渲染圖像會(huì)縮放來(lái)適應(yīng)布局的(如果你發(fā)現(xiàn)渲染結(jié)果看上去變形了,不必一味依賴CSS,可以嘗試顯式指定canvas的width 和 height 屬性值)。The id attribute isn't specific to the canvas element but is one of default HTML attributes which can be applied to (almost) every HTML element (like class for instance). It's always a good idea to supply an id because this makes it much easier to identify it in our script.
id 屬性不是 canvas 專享的,就像標(biāo)準(zhǔn)的HTLM標(biāo)簽一樣,任何一個(gè)HTML元素都可以指定其 id 值。一般,為元素指定 id 是個(gè)不錯(cuò)的主意,這樣使得在腳本中應(yīng)用更加方便。The canvas element can be styled just like any normal image (margin, border, background, etc). These rules however don't affect the actual drawing on the canvas. We'll see how this is done later in this tutorial. When no styling rules are applied to the canvas it will initially be fully transparent. canvas 元素可以像普通圖片一樣指定其樣式(邊距,邊框,背景等等)。然而這些樣式并不會(huì)對(duì)canvas實(shí)際生成的圖像產(chǎn)生什么影響。下面我們會(huì)看到如何應(yīng)用樣式。如果不指定樣式,canvas默認(rèn)是全透明的。Because the canvas element is still relatively new and isn't implemented in some browsers (such as Firefox 1.0 and Internet Explorer), we need a means of providing fallback content when a browser doesn't support the element.因?yàn)?canvas 相對(duì)較新,有些瀏覽器并沒實(shí)現(xiàn),如Firefox 1.0 和 Internet Explorer,所以我們需要為那些不支持canvas的瀏覽器提供替用顯示內(nèi)容。Luckily this is very straightforward: we just provide alternative content inside the canvas element. Browsers who don't support it will ignore the element completely and render the fallback content, others will just render the canvas normally.
For instance we could provide a text description of the canvas content or provide a static image of the dynamically rendered content. This can look something like this:我們只需要直接在canvas元素內(nèi)插入替用內(nèi)容即可。不支持canvas的瀏覽器會(huì)忽略canvas元素而直接渲染替用內(nèi)容,而支持的瀏覽器則會(huì)正常地渲染canvas。例如,我們可以把一些文字或圖片填入canvas內(nèi),作為替用內(nèi)容: canvas id= stockGraph width= 150 height= 150 current stock price: $3.15 +0.15 /canvas canvas id= clock width= 150 height= 150 img src= images/clock.png width= 150 height= 150 / /canvas
結(jié)束標(biāo)簽 /canvas 是必須的In the Apple Safari implementation, canvas is an element implemented in much the same way img is; it does not have an end tag. However, for canvas to have widespread use on the web, some facility for fallback content must be provided. Therefore, Mozilla's implementation requires an end tag ( /canvas ).在Apple Safari里, canvas 的實(shí)現(xiàn)跟 img 很相似,它并不沒有結(jié)束標(biāo)簽。然而,為了使 canvas 能在web的世界里廣泛適用,需要給替用內(nèi)容提供一個(gè)容身之所,因此,在Mozilla的實(shí)現(xiàn)里結(jié)束標(biāo)簽( /canvas )是必須的。If fallback content is not needed, a simple canvas id= foo ... /canvas will be fully compatible with both Safari and Mozilla -- Safari will simply ignore the end tag.如果沒有替用內(nèi)容, canvas id= foo ... /canvas 對(duì) Safari 和 Mozilla 是完全兼容的 Safari 會(huì)簡(jiǎn)單地忽略結(jié)束標(biāo)簽。If fallback content is desired, some CSS tricks must be employed to mask the fallback content from Safari (which should render just the canvas), and also to mask the CSS tricks themselves from IE (which should render the fallback content).如果有替用內(nèi)容,那么可以用一些 CSS 技巧來(lái)為并且僅為 Safari 隱藏替用內(nèi)容,因?yàn)槟切┨嬗脙?nèi)容是需要在 IE 里顯示但不需要在 Safari 里顯示。
渲染上下文(Rendering Context) canvas creates a fixed size drawing surface that exposes one or more rendering contexts, which are used to create and manipulate the content shown. We'll focus on the 2D rendering context, which is the only currently defined rendering context. In the future, other contexts may provide different types of rendering; for example, it is likely that a 3D context based on OpenGL ES will be added. canvas 創(chuàng)建的固定尺寸的繪圖畫面開放了一個(gè)或多個(gè)渲染上下文(rendering context),我們可以通過(guò)它們來(lái)控制要顯示的內(nèi)容。我們專注于2D 渲染上,這也是目前唯一的選擇,可能在將來(lái)會(huì)添加基于OpenGL ES 的 3D 上下文。The canvas is initially blank, and to display something a script first needs to access the rendering context and draw on it. The canvas element has a DOM method called getContext, used to obtain the rendering context and its drawing functions. getContext() takes one parameter, the type of context. canvas 初始化是空白的,要在上面用腳本畫圖首先需要其渲染上下文(rendering context),它可以通過(guò) canvas 元素對(duì)象的 getContext 方法來(lái)獲取,同時(shí)得到的還有一些畫圖用的函數(shù)。getContext() 接受一個(gè)用于描述其類型的值作為參數(shù)。var canvas = document.getElementById('tutorial');var ctx = canvas.getContext('2d');In the first line we retrieve the canvas DOM node using the getElementById method. We can then access the drawing context using the getContext method.上面第一行通過(guò) getElementById 方法取得 canvas 對(duì)象的 DOM 節(jié)點(diǎn)。然后通過(guò)其 getContext 方法取得其畫圖操作上下文。檢查瀏覽器的支持The fallback content is displayed in browsers which do not support canvas ; scripts can also check for support when they execute. This can easily be done by testing for the getContext method. Our code snippet from above becomes something like this:除了在那些不支持 的瀏覽器上顯示替用內(nèi)容,還可以通過(guò)腳本的方式來(lái)檢查瀏覽器是否支持 canvas 。方法很簡(jiǎn)單,判斷 getContext 是否存在即可。var canvas = document.getElementById('tutorial');if (canvas.getContext){ var ctx = canvas.getContext('2d'); // drawing code here} else { // canvas-unsupported code here
Here is a minimalistic template, which we'll be using as a starting point for later examples. You can download this file to work with on your system.我們會(huì)用下面這個(gè)最簡(jiǎn)化的代碼模板來(lái)(后續(xù)的示例需要用到)作為開始,你可以 下載文件 到本地備用。 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 If you look at the script you'll see I've made a function called draw, which will get executed once the page finishes loading (via the onload attribute on the body tag). This function could also have been called from a setTimeout, setInterval, or any other event handler function just as long the page has been loaded first.細(xì)心的你會(huì)發(fā)現(xiàn)我準(zhǔn)備了一個(gè)名為 draw 的函數(shù),它會(huì)在頁(yè)面裝載完畢之后執(zhí)行一次(通過(guò)設(shè)置 body 標(biāo)簽的 onload 屬性),它當(dāng)然也可以在 setTimeout,setInterval,或者其他事件處理函數(shù)中被調(diào)用。
一個(gè)簡(jiǎn)單的例子To start off, here's a simple example that draws two intersecting rectangles, one of which has alpha transparency. We'll explore how this works in more detail in later examples.作為開始,來(lái)一個(gè)簡(jiǎn)單的吧 繪制兩個(gè)交錯(cuò)的矩形,其中一個(gè)是有alpha透明效果。我們會(huì)在后面的示例中詳細(xì)的讓你了解它是如何運(yùn)作的。 html head script type= application/x-javascript function draw() { var canvas = document.getElementById( canvas if (canvas.getContext) { var ctx = canvas.getContext( 2d ctx.fillStyle = rgb(200,0,0) ctx.fillRect (10, 10, 55, 50); ctx.fillStyle = rgba(0, 0, 200, 0.5) ctx.fillRect (30, 30, 55, 50); /script /head body onload= draw(); canvas id= canvas width= 150 height= 150 /canvas /body /html html教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
亚洲一区二区三区美女| 性高潮久久久久久久久久| 日本三级免费网站| 欧美久久在线| 国产欧美三级电影| 亚洲日本免费| 自拍偷拍亚洲图片| 特黄特色大片免费视频大全| 日韩一级裸体免费视频| 久久av无码精品人妻系列试探| 亚洲欧美日韩国产综合精品二区| www.色小姐com| 午夜精品毛片| 成人av一区| 四虎最新网站| 欧美wwww| 国产ktv在线视频| 亚洲天堂一级片| 成人永久看片免费视频天堂| 九色蝌蚪国产| 国产高清一区视频| www红色一片_亚洲成a人片在线观看_| av电影一区二区| 丰满人妻中伦妇伦精品app| 色偷偷偷综合中文字幕;dd| www.欧美日韩| 在线免费av网址| 亚洲国产成人私人影院| 欧美日韩国产影院| 天天久久人人| 欧美亚洲黄色片| 嫩呦国产一区二区三区av| 中文字幕日韩一区二区三区不卡| 日本中文字幕一区二区| 亚洲精品aⅴ中文字幕乱码| 91精彩视频在线观看| 国产麻豆一区二区三区在线观看| 国产精品美女在线| 成年人免费在线播放| 91在线观看地址| 国产精品精品软件视频| 亚洲色图一区二区三区| 青青国产在线视频| 中文字幕日韩av资源站| 特一级黄色片| 亚洲国产成人91精品| 日本a在线观看| 免费国产黄线在线观看视频| 亚洲乱码电影| 亚洲 欧美 日韩系列| 日韩一级在线免费观看| 一个人看的www视频免费观看| 91在线导航| 午夜精品无码一区二区三区| eeuss鲁片一区二区三区在线观看| 久久精品夜夜夜夜久久| 国产精品电影一区二区| 日韩免费视频网站| 色老汉一区二区三区| 久久精品一区二区三区四区| 精品日本高清在线播放| 好吊色这里只有精品| 亚洲综合自拍一区| 色综合久久久久久久久| 国产精品网站大全| 国产99re66在线视频| 亚洲国产成人精品女人久久| 一本大道久久a久久综合| 竹菊久久久久久久| 黄色一级片播放| 日韩影院二区| 在线看日韩av| 欧美福利视频网站| 精品美女在线观看| 免费黄色欧美视频| www.国产视频| 国产偷人妻精品一区| 91av在线免费视频| 人善交video高清| 男女男精品视频网站| 日本成人看片网址| 偷拍自拍一区| 日韩精品在线观看一区二区| 国产主播自拍av| gogogo高清免费观看在线视频| 久久九九国产精品怡红院| 国产美女精品写真福利视频| 国产性猛交普通话对白| 日韩一区二区三区观看| 在线播放成人| 亚洲欧洲色图| 日本黄色激情视频| av国产在线观看| 91麻豆国产语对白在线观看| 久久精品免费看| 在线视频2区| 国产精品色午夜在线观看| 老色鬼在线视频| 亚洲国产精品久久久久婷婷884| 亚洲视频在线播放免费| 免费在线播放电影| 国产手机精品在线| 国产一区影院| avtt天堂资源网站| 色中色一区二区| 少妇被躁爽到高潮无码文| a日韩av网址| 真实国产乱子伦对白视频| 三级毛片在线看| 看黄色录像一级片| 猫咪av在线| 国产极品美女高潮无套久久久| 久久久99精品免费观看不卡| 久久一区二区三区喷水| xfplay先锋影音夜色资源站| 欧美日韩精品一区二区三区蜜桃| 日韩电影在线观看完整免费观看| 欧美黑人巨大| 亚洲精品一区二区三区在线播放| 精品国偷自产一区二区三区| 97精品久久久久中文字幕| 天天插天天操| 欧美午夜精品久久久久久久| 少妇激情一区二区三区| 日韩电影毛片| 一区二区三区鲁丝不卡| 黄色精品视频在线观看| 91精品店在线| 在线午夜视频| 麻豆成人在线| 国产高清视频在线| 黄色小说在线观看视频| 国产无遮挡猛进猛出免费软件| 国产麻豆一区二区三区在线观看| 亚洲欧美日韩精品一区| 2019国产精品| 天天爽夜夜爽一区二区三区| 777午夜精品电影免费看| 嗯~啊~轻一点视频日本在线观看| www.在线视频| 日韩av最新在线| 日韩三区在线观看| 影音先锋一区二区资源站| 国产精品18久久久久久麻辣| 免费观看成人性生生活片| 偷窥自拍亚洲色图| 日韩欧美一区在线| 亚洲高清一二三区| 北条麻妃在线| 色狠狠久久av五月综合| 五月天精品在线| 51精品在线| 免费黄色在线视频| 日韩a∨精品日韩在线观看| 爱情岛论坛亚洲首页入口章节| 国产大片在线免费观看| 欧美一级免费在线| 亚洲一级片免费观看| 国产高清精品一区| av福利在线播放| 欧美成人精品在线| 综合久久综合| 老牛国内精品亚洲成av人片| 女同互添互慰av毛片观看| 日韩三级av在线| 午夜免费久久久久| 亚洲福利久久| 一级黄色片在线免费观看| 成人性做爰片免费视频| 欧美韩国日本不卡| 最好看的中文字幕| 91亚洲精品久久久蜜桃网站| 四虎影院中文字幕| 久久精品女人天堂av免费观看| 日韩一区二区三区四区在线| 国产中文字幕视频| 成人av资源站| 亚洲AV无码成人片在线观看| 高清欧美性猛交| av免费观看网| 黑人玩欧美人三根一起进| 久久国产精品久久久久久电车| 国产麻豆a毛片| 日韩精品免费在线视频观看| 一区二区高清免费观看影视大全| 亚洲日本精品一区| 日韩亚洲精品电影| 国产综合色产在线精品| 国产一级视频| 久久天天躁夜夜躁狠狠躁2022| 二区在线观看| 欧美videos大乳护士334| 国内揄拍国内精品久久| 精品人伦一区二区| 偷拍夫妻性生活| 久久人人爽人人爽人人片| 国产精品狼人久久影院观看方式| 五月久久久综合一区二区小说| 99在线免费观看视频| 伊人久久大香线蕉av不卡| 日本韩国一区二区三区视频| 一级香蕉视频在线观看| 91成人免费观看| 久久成人资源| 久久综合电影| 九九热视频精品在线观看| 欧美亚洲丝袜| 国产麻豆视频| 成人高潮a毛片免费观看网站| 电影一区电影二区| 中文字幕欧美国内| 亚洲自拍偷拍一区二区三区| 91麻豆精品国产91久久久资源速度| 伊人久久大香线蕉综合四虎小说| 日韩黄色在线免费观看| 精品高清一区二区三区| 午夜偷拍福利视频| 午夜精品久久久久久久爽| 午夜国产精品视频免费体验区| 欧美大片在线播放| 午夜精品久久久久久久99热黄桃| 97netav| 久久久久国产精品一区三寸| 日韩一区二区精品葵司在线| 亚洲欧洲精品一区二区精品久久久| av日韩在线网站| 国内精品伊人久久久久影院对白| 精品久久久久中文慕人妻| 日韩av中文字幕在线| 日韩精品在线观看一区二区| 欧美日韩另类丝袜其他| 99鲁鲁精品一区二区三区| 777电影在线观看| 精品无码人妻一区二区三| 粉嫩av一区| 日韩精品极品在线观看播放免费视频| 亚洲国产成人在线| 国产精品露脸av在线| 日韩理论电影中文字幕| www.av在线播放| 久久久人成影片一区二区三区在哪下载| 久草一本av| 大胆欧美人体视频| 国产一区二区亚洲| 国产精品一区二区欧美黑人喷潮水| 尹人成人综合网| 360天大佬第二季在线观看| 最近2019中文字幕一页二页| 高清不卡一区| 欧美精品色哟哟| 欧美人与动xxxxz0oz| 波多野结衣一区二区三区在线观看| 一级做a爱片久久| 国产91精品在线| 国产精品福利av| 电影亚洲一区| 青青青国产在线观看| 久久精品视频亚洲| 亚洲风情在线资源| 美女诱惑一区| 国产毛片毛片毛片| 国产伪娘ts一区| 狠狠躁夜夜躁人人爽天天高潮| 亚洲伊人一本大道中文字幕| 日日摸日日搞日日| 成人网中文字幕| 国产精品啪啪啪视频| 国产在线98福利播放视频| 久久免费偷拍视频| 婷婷亚洲久悠悠色悠在线播放| www.国产一区二区| 极品在线视频| 亚洲精品乱码久久久久久按摩观| 爱情岛亚洲播放路线| 久久久久久香蕉网| 欧美一级视频精品观看| 亚洲影院中文字幕| 成年女人在线视频| 国产成人啪午夜精品网站男同| 国产成人免费视频| 免费在线成人av电影| 亚洲精品一级| 另类图片亚洲色图| 亚洲国产另类久久精品| 美女毛片一区二区三区四区| 国产精品一区二区三区av麻| 欧美一区二区不卡视频| 欧美a视频在线观看| 午夜激情一区| 日本在线小视频| 韩国精品视频在线观看| 不卡的av影片| 亚洲超碰精品一区二区| 亚洲二区在线播放视频| 亚洲欧美日韩视频一区| 国产 欧美 日韩 一区| 四虎最新地址发布| 亚洲女同另类| 成人黄动漫网站免费| 欧美国产偷国产精品三区| 亚洲国产一区在线| 欧美午夜激情在线| 麻豆精品密在线观看| 综合久久精品| 亚洲av午夜精品一区二区三区| 日韩午夜精品电影| 蜜芽在线视频| 女人裸体免费网站| 白浆爆出在线观看| 色欲AV无码精品一区二区久久| 极品少妇xxxx精品少妇偷拍| 国产第一页第二页| 欧美一三区三区四区免费在线看| 男女裸体影院高潮| 国产精品视频一区二区三区不卡| 麻豆国产一区二区| 国产一级电影网| 四虎影在永久在线观看| 制服丝袜在线一区| 99re6在线精品视频免费播放| 天堂网在线最新版www中文网| 久久成人在线观看| 日韩三级精品| jizzjizz少妇亚洲水多| 久久久久97国产| 久久国产精品99国产精| 有码中文亚洲精品| 日韩精品麻豆|