HTML5繪制動畫的方法?這個問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!
創(chuàng)新互聯(lián)服務(wù)項目包括鄖西網(wǎng)站建設(shè)、鄖西網(wǎng)站制作、鄖西網(wǎng)頁制作以及鄖西網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,鄖西網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到鄖西省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!雖然canvas的API并未直接提供支持動畫的方法,但就其本身而言,在canvas中實現(xiàn)動畫效果也很簡單:只需要持續(xù)的更新并重繪畫布就行了。這種持續(xù)的更新并重繪就叫做動畫循環(huán),它是所有動畫的核心邏輯。
在canvas中實現(xiàn)動畫,首先需要初始化畫布上的對象。然后,啟動一個動畫循環(huán)來更新畫布、清除畫布、重繪畫布,再請求下一個新的動畫幀。
接下來通過一個簡單實例,來看看canvas動畫的實現(xiàn)過程。該實例以動畫的方式,實現(xiàn)一個旋轉(zhuǎn)的八卦圖。代碼如下:
function clear() { context.clearRect(0, 0, canvas.width, canvas.height); } function rotate() { context.rotate(Math.PI/30); // 每分鐘旋轉(zhuǎn)一周 } function draw () { // 繪制白色半圓 context.beginPath(); context.arc(0, 0, 80, 1.5*Math.PI, Math.PI/2, false); context.fillStyle = "white"; context.closePath(); context.fill(); // 繪制黑色半圓 context.beginPath(); context.arc(0, 0, 80, Math.PI/2, 1.5*Math.PI, false); context.fillStyle = "black"; context.closePath(); context.fill(); // 繪制黑色小圓 context.beginPath(); context.arc(0, 40, 40, 0, Math.PI*2, true); context.fillStyle = "black"; context.closePath(); context.fill(); // 繪制白色小圓 context.beginPath(); context.arc(0, -40, 40, 0, Math.PI*2, true); context.fillStyle = "white"; context.closePath(); context.fill(); // 繪制白色小圓心 context.beginPath(); context.arc(0, -40, 5, 0, Math.PI*2, true); context.fillStyle = "black"; context.closePath(); context.fill(); // 繪制黑色小圓心 context.beginPath(); context.arc(0, 40, 5, 0, Math.PI*2, true); context.fillStyle = "white"; context.closePath(); context.fill(); } function drawStage() { rotate(); // 更新 clear(); // 清除 draw(); // 重繪 } window.onload = function(){ canvas = document.getElementById('canvas'); context = canvas.getContext('2d'); context.translate(canvas.width/2, canvas.height/2); setInterval(drawStage, 100); };
上述代碼,當(dāng)頁面加載完成后,首先進(jìn)行初始化,然后調(diào)用setInterval(drawStage, 100)方法啟動動畫循環(huán),在動畫循環(huán)中,每隔100ms會調(diào)用一次drawStage ()函數(shù),來執(zhí)行更新畫布、清除畫布、重繪畫布的操作,以實現(xiàn)動畫效果。運(yùn)行結(jié)果如圖 4?37 所示:
當(dāng)然,這里只是為了演示實現(xiàn)動畫的原理而已,所以實例相對簡單。其實,Canvas中的動畫可以很簡單,也可以很復(fù)雜。不管簡單還是復(fù)雜,其基本原理是完全相同的。
感謝各位的閱讀!看完上述內(nèi)容,你們對HTML5繪制動畫的方法大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊頻道。