本篇內(nèi)容介紹了“HTML5的新特性整理與Canvas的常用屬性介紹”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)建站長期為上千多家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為衢州企業(yè)提供專業(yè)的網(wǎng)站建設、成都做網(wǎng)站,衢州網(wǎng)站改版等技術服務。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
1.HTML5的內(nèi)容類型
內(nèi)容類型 | 描述 |
---|---|
內(nèi)嵌 | 向文檔中添加其他類型的內(nèi)容,例如audio、video、canvas和iframe等 |
流 | 在文檔和應用的body中使用的元素,例如form、h2和small |
標題 | 段落標題,例如h2、h3和hgroup等 |
交互 | 與用戶交互的內(nèi)容,例如音頻和視頻的控件、botton和textarea等 |
元數(shù)據(jù) | 通常出現(xiàn)在頁面的head中,設置頁面其他部分的表現(xiàn)和行為,例如script、style和title等。 |
短語 | 文本和文本標記元素,例如mark、kdb、sub和sup等 |
片段 | 用友定義頁面片段的元素,例如article、aside和title等 |
2.HTML5中新的片段類元素
元素名 | 描述 |
---|---|
header | 標記頭部區(qū)域的內(nèi)容(用于整個頁面或頁面中的一塊區(qū)域) |
footer | 標記腳部區(qū)域的內(nèi)容(用于整個頁面或頁面中的一塊區(qū)域) |
section | Web頁面中的一塊區(qū)域 |
article | 獨立的文章內(nèi)容 |
aside | 相關內(nèi)容或者引文 |
nav | 導航類輔助內(nèi)容 |
3.新querySelector方法
提示
selectors API不僅僅只是方便,在遍歷DOM的時候,selectors API通常會比以前的子節(jié)點搜索API更快。為了實現(xiàn)快速樣式表,瀏覽器對選擇器匹配進行了高度優(yōu)化。
4.Canvas API
4.1Canvas 概述
Canvas本質(zhì)上是一個位圖畫布,其上繪制的圖形是不可縮放的,不能像SVG圖像那樣可以被放大縮小。此外,用Canvas繪制出來的對象不屬于頁面DOM結(jié)構(gòu)或者任何命名空間。
使用canvas編程,首先要獲取其上下文(context)。接著在上下文中執(zhí)行動作,最后將這些動作應用到上下文中。
canvas中的坐標是從左上角開始的,x軸沿著水平方向(按像素)向右延伸,y軸沿垂直方向向下延伸。左上角坐標為x=0,y-0的點稱作原點。
同大多數(shù)HTML元素一樣,canvas元素也可以通過應用CSS的方式來增加邊框,設置內(nèi)邊距、外邊距等,而且一些CSS屬性還可以被canvas內(nèi)的元素繼承。
4.2 使用HTML5 Canvas API
修正——在繪制系統(tǒng)中的說法是變換——在應用的時候可以被順序應用、組合或者隨意修改。每個繪制操作的結(jié)果顯示在canvas上之前都要經(jīng)過修正層去做修正。雖然這么做增加了額外的復雜性,但卻為繪制系統(tǒng)添加了更為強大的功能,可能像目前主流圖像編輯工具那樣支持實時圖像處理,所以API中這部分內(nèi)容的復雜性是必要的。
關于可重用代碼有一條重要的建議:一般繪制都應從原點(坐標系的0,0點)開始,應用變換(縮放、平移、旋轉(zhuǎn)等),然后不斷修改代碼直至達到希望的效果。
context路徑函數(shù)
(1)moveTo(x,y):不繪制,只是將當前位置移動到新的目的坐標(x,y);
(2)lineTo(x,y):不僅將當前位置移動到新的目標坐標(x,y),而且在兩個坐標之間畫一條直線。
(3)closePath():這個函數(shù)的行為同lineTo很像,唯一的差別在于closePaht會將路徑的起始坐標自動作為目標坐標。closePath還會通知canvas當前繪制的圖形已經(jīng)閉合或者形成了完全封閉的區(qū)域,這對將來的填充和描邊都非常有用。
(4)strokeRect():基于給出的位置和坐標畫出矩形的輪廓。
(5)clearRect():清除矩形區(qū)域內(nèi)所有內(nèi)容并將它恢復到初始狀態(tài),即透明色。
(6)quadraticCurveTo():函數(shù)繪制曲線的起點是當前坐標,帶有兩組(x,y)邊。第二組是指曲線的終點。第一組代表控制點(control point)。所謂的控制點位于曲線的旁邊(不是曲線之上),其作用相當于對曲線產(chǎn)生一個拉力。通過調(diào)整控制點的位置,就可以改變曲線的曲率。
圖片增加了canvas操作的復雜度:必須等到圖片完全加載后才能對其進行操作。瀏覽器通常會在頁面腳本執(zhí)行的同時異步加載圖片。如果視圖在圖片未完全加載之前就將其呈現(xiàn)到canvas上,那么canvas將不會顯示任何圖片。
漸變是指在顏色集上使用逐步抽樣算法,并將結(jié)果應用于描邊樣式和填充樣式中。
使用漸變需要三個步驟:
(1)創(chuàng)建漸變對象;
(2)為漸變對象設置顏色,指明過渡方式;
(3)在context上為填充樣式或者描邊樣式設置漸變。
要設置顯示哪種顏色,在漸變對象上使用addColorStop函數(shù)即可。這個函數(shù)允許指定兩個參數(shù):顏色和偏移量。顏色參數(shù)是指開發(fā)人員希望在偏移位置描邊或填充時所使用的顏色。偏移量是一個0.0到1.0之間的數(shù)值,代表沿著漸變線漸變的距離有多遠。
除了線性漸變以外,HTML5 Canvas API 還支持放射性漸變,所謂放射性漸變就是顏色會介于兩個指定圓間的錐形區(qū)域平滑變化。放射性漸變和線性漸變使用的顏色終止點是一樣的。
XML/HTML Code復制內(nèi)容到剪貼板
createRadialGradient(x0,y0,r0,x1,y1,r1)
代碼中,前三個參數(shù)代表以(x0,y0)為圓心,r0為半徑的圓,后三個參數(shù)代表以(x1,y1)為圓心,r1為半徑的另一個圓。漸變會在兩個圓中間的區(qū)域出現(xiàn)。
scala函數(shù)帶有兩個參數(shù)來分別代表在x、y兩個維度的值。每個參數(shù)在canvas顯示圖像的時候,向其床底在本方向軸上圖像要放大(或者縮?。┑牧俊?br/>要在原點執(zhí)行圖形和路徑的變換操作,執(zhí)行完后再統(tǒng)一平移。理由就是縮放(scale)和旋轉(zhuǎn)(rotate)等變換操作都是針對原點進行的。
如果對一個不在原點的圖形進行旋轉(zhuǎn)變換,那么rotate變換函數(shù)會將圖形繞著原點旋轉(zhuǎn)而不是在原地旋轉(zhuǎn)。
注意,剪裁過的“陰影”樹會先被顯示出來,這樣一來,真正的樹就會按照Z軸順序(canvas中對象的重疊順序)顯示在陰影的上面。此外,樹影的填充用到了CSS的RGBA特性,通過特性我們將透明度值設置為正常情況下的20%。
操作canvas文本的方式與操作其他路徑對象的方式相同:可以描繪文本輪廓和填充文本內(nèi)部;同事,所有能夠應用于其他圖形的變換和樣式都能用于文本。
context對象的文本繪制功能由兩個函數(shù)組成:
(1)
XML/HTML Code復制內(nèi)容到剪貼板
fillText(text,x,y,maxwidth)
(2)
XML/HTML Code復制內(nèi)容到剪貼板
strokeText(text,x,y,maxwidth)
兩個函數(shù)的參數(shù)完全相同,必選參數(shù)包括文本參數(shù)以及用于指定文本位置的坐標參數(shù)。maxwidth是可選參數(shù),用于限制字體大小,它會將文本字體強制收縮到指定尺寸。此外,還有一個measureText函數(shù)可供使用,該函數(shù)會返回一個度量對象,其中包含了在當前context環(huán)境下指定文本的實際顯示寬度。
文本呈現(xiàn)相關的context屬性
陰影屬性
Canvas API最有用的特性之一是允許開發(fā)人員直接訪問canvas底層的像素數(shù)據(jù)。
(1)
XML/HTML Code復制內(nèi)容到剪貼板
context.getImageData(sx,sy,sw,sh)
這個函數(shù)返回當前canvas狀態(tài)并以數(shù)值數(shù)值的方式顯示。具體來說,返回的對象包括三個屬性。
width:每行有多少個像素。
height:每列有多少個像素。
data:一維數(shù)組,存有從canvans獲取的每個像素的RGBA值。該數(shù)組為每個像素保存四個值——紅、綠、藍和alpha透明度。每個值都在0到255之間。因此,canvas上的每個像素在這個數(shù)組中就變成了四個整數(shù)值。數(shù)組的填充順序是從左到右,從上到下。
getImageData函數(shù)有四個參數(shù),該函數(shù)只返回這四個參數(shù)所限定的區(qū)域內(nèi)的數(shù)據(jù)。只有被x、y、width、height四個參數(shù)框定的矩形區(qū)域內(nèi)的canvas上的像素才會被取到。
在給定了width和height的canvas上,在坐標(x,y)上的像素的構(gòu)成如下。
紅色部分:
XML/HTML Code復制內(nèi)容到剪貼板
((width*y)+x)*4
綠色部分:
XML/HTML Code復制內(nèi)容到剪貼板
((width*y)+x)*4+1
藍色部分:
XML/HTML Code復制內(nèi)容到剪貼板
((width*y)+x)*4+2
透明度部分:
XML/HTML Code復制內(nèi)容到剪貼板
((width*y)+x)*4+3
(2)
XML/HTML Code復制內(nèi)容到剪貼板
context.putImageData(imagedata,dx,dy)
該函數(shù)允許開發(fā)人員傳入一組圖像數(shù)據(jù),其格式與最初從canvas上獲取來的是一樣的。
(3)
XML/HTML Code復制內(nèi)容到剪貼板
context.createImageData(sw,sh)
這個函數(shù)可以創(chuàng)建一組圖像數(shù)據(jù)并綁定在canvas對象上。
如果canvas中的圖片并發(fā)來自包含它的頁面所在的域,頁面腳本將不能取得其中的數(shù)據(jù)。
“HTML5的新特性整理與Canvas的常用屬性介紹”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!