Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 一区二区免费电影,a免费国产一级特黄aa大,亚洲专区一路线二

          整合營(yíng)銷(xiāo)服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢(xún)熱線(xiàn):

          前端設(shè)計(jì)-教你如何快速繪制HTML5動(dòng)畫(huà)

          周在給學(xué)生講授JavaScript課程中setInterval方法時(shí),想到了我們?cè)诰W(wǎng)上看到的各類(lèi)GIF動(dòng)圖比較有意思,就將其引入到教學(xué)中,教學(xué)內(nèi)容設(shè)計(jì)如果通過(guò)HTML5與JavaScript實(shí)現(xiàn)網(wǎng)頁(yè)類(lèi)似GIF效果的動(dòng)態(tài)圖。于是在網(wǎng)上搜集了部分gif格式動(dòng)圖,將每一個(gè)Gif動(dòng)圖分解為一組jpg格式圖片,再采用setInterval與html5 Canvas進(jìn)行動(dòng)畫(huà)的實(shí)現(xiàn)。通過(guò)學(xué)習(xí)可以讓學(xué)生進(jìn)一步了解canvas動(dòng)畫(huà)實(shí)現(xiàn)的過(guò)程與原理。并將其發(fā)布到頭條,也希望對(duì)有興趣的初學(xué)者了解HTML5 Canvas等有所幫助。圖片分組圖片素材如下:

          素材一

          實(shí)現(xiàn)動(dòng)畫(huà)的素材我們已經(jīng)給出,主要通過(guò)gif動(dòng)圖導(dǎo)出一組圖片,下面對(duì)html5動(dòng)畫(huà)實(shí)現(xiàn)過(guò)程進(jìn)行簡(jiǎn)單說(shuō)明。


          基本思路

          實(shí)現(xiàn)其動(dòng)畫(huà)的基本思路是通過(guò)HTML5提供的canvas元素進(jìn)行圖片的繪制與展示,借助setInterval方法實(shí)現(xiàn)間隔指定時(shí)間調(diào)用新的圖片實(shí)現(xiàn)重新繪圖。其中繪圖主要使用drawImage方法進(jìn)行繪圖,最終通過(guò)圖片依次重繪實(shí)現(xiàn)動(dòng)畫(huà)效果。具體實(shí)現(xiàn)過(guò)程如下:

          HTML5 Canvas設(shè)置

          在頁(yè)面body部分添加Canva標(biāo)簽,設(shè)置其id屬性為canv,寬度為600,高度為400,編寫(xiě)代碼描述如下圖:

          添加畫(huà)布元素

          canvas瀏覽效果

          加載圖片資源

          使用Canvas借助JavaScript提供的drawImage方法進(jìn)行繪圖,需要提供要繪制的圖片資源即繪圖的坐標(biāo)位置。該方法原型如下:

          drawImage方法原型

          因此我們需要加載圖片資源,本例由于需要調(diào)用多個(gè)img實(shí)現(xiàn)定時(shí)不同圖片的繪制,因此我們可以使用數(shù)組存儲(chǔ)所加載的圖片資源。本例圖片數(shù)量為14,因此我們數(shù)組長(zhǎng)度為14。使用素組存儲(chǔ)圖片實(shí)現(xiàn)代碼如下:

          加載圖片資源代碼

          定義頁(yè)面加載事件onload

          本例設(shè)計(jì)在頁(yè)面加載時(shí)自動(dòng)播放動(dòng)畫(huà),因此需要在JavaScript腳本中添加頁(yè)面onload事件,在事件中編寫(xiě)繪圖相關(guān)代碼,主要代碼包括獲取畫(huà)布canva與實(shí)例化繪圖對(duì)象context。部分代碼描述如下:

          onload事件及繪圖初始化

          使用setInterval實(shí)現(xiàn)動(dòng)畫(huà)

          使用setInterval方法實(shí)現(xiàn)動(dòng)畫(huà)主要需要定義回調(diào)函數(shù)與回調(diào)函數(shù)觸發(fā)執(zhí)行的周期,本例中我們使用匿名函數(shù)作為回調(diào)函數(shù),觸發(fā)周期設(shè)置為100毫秒。setInterval函數(shù)定義如下:

          setInterval函數(shù)

          在定義完函數(shù)之后可在其匿名函數(shù)函數(shù)體部分寫(xiě)入繪圖方法dramImage(),實(shí)現(xiàn)周期調(diào)用不同圖片資源進(jìn)行繪圖,最終展示出動(dòng)畫(huà)效果。為了保證循環(huán)調(diào)用14張圖片,我們需要設(shè)置一計(jì)數(shù)全局變量i,由于我們圖片采用數(shù)組存儲(chǔ),下標(biāo)為數(shù)組,且從0-13進(jìn)行編號(hào),因此當(dāng)計(jì)數(shù)值小于13時(shí)自動(dòng)+1,指向下一數(shù)組下標(biāo),當(dāng)為13時(shí),設(shè)置計(jì)數(shù)值為0,回到數(shù)組第一元素,最終實(shí)現(xiàn)數(shù)組訪問(wèn)下標(biāo)的循環(huán)。setInterval實(shí)現(xiàn)完整代碼如下:

          setInterval完整代碼

          實(shí)現(xiàn)效果展示


          HTML動(dòng)畫(huà)效果展示


          本頭條號(hào)長(zhǎng)期關(guān)注編程資訊分享;編程課程、素材、代碼分享及編程培訓(xùn)。如果您對(duì)以上方面有興趣或代碼錯(cuò)誤、建議與意見(jiàn),可以聯(lián)系作者,共同探討。期待大家關(guān)注!如需案例完整代碼請(qǐng)關(guān)注并私信,往期前端設(shè)計(jì)文章鏈接如下:

          1. 前端設(shè)計(jì)-JavaScript中的值、引用傳遞與垃圾回收
          2. 前端設(shè)計(jì)-JavaScript美女拼圖游戲開(kāi)發(fā)實(shí)例
          3. 前端設(shè)計(jì)- JavaScript驗(yàn)證碼制作及實(shí)例分析
          4. 前端設(shè)計(jì)-Ajax技術(shù)及實(shí)例展示
          5. 前端設(shè)計(jì)-響應(yīng)式頁(yè)面開(kāi)發(fā)基礎(chǔ)
          6. Web開(kāi)發(fā)前端、后端與全棧的區(qū)別是什么?

          web開(kāi)發(fā)中,GIF動(dòng)畫(huà)效果是隨處可見(jiàn),比如常見(jiàn)的loading加載、人物奔跑的gif圖片等等,那么這些都是怎么實(shí)現(xiàn)的呢?

          其實(shí)實(shí)現(xiàn)的原理很簡(jiǎn)單,簡(jiǎn)而言之,這些所謂的動(dòng)畫(huà)都是一幀一幀的圖片經(jīng)過(guò)一段時(shí)間的間隔做出位移而來(lái)的;譬如,我們?cè)赑S里面制作GIF動(dòng)畫(huà),首先要把每一幀所需要的圖片制作出來(lái),然后再通過(guò)導(dǎo)出的方式把GIF圖片保存下來(lái);相信會(huì)PS的同學(xué),都可以熟練的制作一個(gè)基本的GIF動(dòng)畫(huà)圖片;在web開(kāi)發(fā)中,要實(shí)現(xiàn)這樣的gif圖片,也有很多方法;在這給讀者提供一個(gè)思路,就是利用html5 canvas實(shí)現(xiàn)動(dòng)畫(huà)效果。

          利用canvas的drawImage把含有幀的圖片加載到canvas中去,再結(jié)合js實(shí)現(xiàn)動(dòng)畫(huà)

          <!DOCTYPE html>
          <html lang="en"><head>
           <meta charset="UTF-8">
           <title>canvas幀--實(shí)現(xiàn)動(dòng)畫(huà)</title>
           <style>
           *{padding:0;margin:0;}
           canvas{display:block;background:white}
          </style>
          </head>
          <body> 
          <canvas></canvas>
          <script>
           var imgPic = new Image();
           imgPic.src = 'http://www.cj365.cc/demo/bird/bird.png';
           var canvas = document.querySelector('canvas');
           canvas.width = window.innerWidth;
           canvas.height = window.innerHeight;
           var ctx = canvas.getContext('2d');
           imgPic.onload = function () {
           drawImg()
           }
           var i = 0;
           var lastTime = new Date().getTime();
           var delatime;
           var timer = 0;
           function drawImg() {
           window.requestAnimationFrame(drawImg);
           var now = new Date().getTime();
           delatime = now - lastTime;
           lastTime = now;
           timer += delatime;
           if (timer > 200) {
           i++;
           if (i > 7) i = 0;
           timer = 0
           }
           console.log(delatime)
           ctx.drawImage(imgPic, i * 140, 0, 140, 85, (canvas.width - 140) / 2, (canvas.height - 85) / 2, 140, 85);
           }
          </script>
          </body>
          </html>
          

          以上方法實(shí)現(xiàn)的前提是,需要有一張已繪制幀的圖片,有了圖片才可進(jìn)行幀的動(dòng)畫(huà);利用該方法可以控制動(dòng)畫(huà)的播放、暫停以及幀率

          接來(lái),直接上今天的課程

          第七課:頁(yè)面

          第八課:播放控制

          第九課:變形工具

          今天多加一個(gè)課外小教程,《PV3天破2億的H5作品詳解》

          1. 背景介紹

          2. 知識(shí)點(diǎn)

          3. 界面制作
          4. 添加行為
          5. 發(fā)布作品

          有興趣的朋友也可以關(guān)注我們的微信公眾號(hào):mugedachina 或者搜索“Mugeda”即可

          另外,在我們的作品展示品牌有很多成熟的案例,大家也可以關(guān)注一下,微信公眾號(hào):mucard,或搜索“卡司令”


          主站蜘蛛池模板: 免费精品一区二区三区第35| 精品无码国产一区二区三区51安 | 午夜无码一区二区三区在线观看 | 蜜桃传媒视频麻豆第一区| 精品深夜AV无码一区二区老年| 精品一区二区三区色花堂| 国产综合无码一区二区色蜜蜜| 无码免费一区二区三区免费播放| 无码精品久久一区二区三区 | 杨幂AV污网站在线一区二区| 亚洲sm另类一区二区三区| 91福利视频一区| 99精品国产高清一区二区| 国产一区二区三区久久| 精品少妇一区二区三区视频| 夜夜添无码试看一区二区三区| 精品一区二区三区无码视频| 国产在线精品一区二区 | 亚洲电影一区二区| 久久se精品动漫一区二区三区| 国精产品一区一区三区免费视频 | 麻豆一区二区免费播放网站| 97精品国产一区二区三区| 亚洲精品一区二区三区四区乱码| 99久久人妻精品免费一区| 在线播放国产一区二区三区 | 日本视频一区在线观看免费| 精品一区二区三区波多野结衣| 少妇无码一区二区三区| 91大神在线精品视频一区| 学生妹亚洲一区二区| 亚洲综合av一区二区三区| 午夜性色一区二区三区不卡视频| 国产精品无码一区二区在线观 | 国产第一区二区三区在线观看| 免费一区二区三区在线视频| 亚洲AV无码一区二三区| 嫩B人妻精品一区二区三区| 精品一区二区久久| 亚洲综合色一区二区三区小说| 亚洲a∨无码一区二区|