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

首頁 > 編程 > HTML > 正文

HTML5 Canvas玩轉酷炫大波浪進度圖效果實例(附demo)

2024-08-26 00:19:15
字體:
來源:轉載
供稿:網友

本文介紹了HTML5 Canvas玩轉酷炫大波浪進度圖效果,具體如下:

html5,canvas波浪動畫,canvas,波浪,canvas波浪動畫進度條

如上圖所見,本文就是要實現上面那種效果。

由于最近AlloyTouch要寫一個下拉刷新的酷炫loading效果。所以首選大波浪進度圖。

首先要封裝一下大波浪圖片進度組件?;镜脑硎抢肅anvas繪制矢量圖和圖片素材合成出波浪特效。

了解quadraticCurveTo

quadraticCurveTo() 方法通過使用表示二次貝塞爾曲線的指定控制點,向當前路徑添加一個點。

JavaScript 語法:

context.quadraticCurveTo(cpx,cpy,x,y);

參數值

cpx 貝塞爾控制點的 x 坐標

cpy 貝塞爾控制點的 y 坐標

x 結束點的 x 坐標

y 結束點的 y 坐標

如:

ctx.moveTo(20,20);ctx.quadraticCurveTo(20,100,200,20);ctx.stroke();

通過上面代碼可以繪制一條二次貝塞爾曲線,具體原理效果看下圖:

html5,canvas波浪動畫,canvas,波浪,canvas波浪動畫進度條

嘗試繪制波浪

var waveWidth = 300,    offset = 0,    waveHeight = 8,    waveCount = 5,    startX = -100,    startY = 208,    progress = 0,    progressStep = 1,    d2 = waveWidth / waveCount,    d = d2 / 2,    hd = d / 2,    c = document.getElementById("myCanvas"),    ctx = c.getContext("2d");function tick() {    offset -= 5;    progress += progressStep;    if (progress > 220 || progress < 0) progressStep *= -1;    if (-1 * offset === d2) offset = 0;    ctx.clearRect(0, 0, c.width, c.height);    ctx.beginPath();    var offsetY = startY - progress;    ctx.moveTo(startX - offset, offsetY);    for (var i = 0; i < waveCount; i++) {        var dx = i * d2;        var offsetX = dx + startX - offset;        ctx.quadraticCurveTo(offsetX + hd, offsetY + waveHeight, offsetX + d, offsetY);        ctx.quadraticCurveTo(offsetX + hd + d, offsetY - waveHeight, offsetX + d2, offsetY);    }    ctx.lineTo(startX + waveWidth, 300);    ctx.lineTo(startX, 300);    ctx.fill();    requestAnimationFrame(tick);}tick();

可以看到無限運動的波浪:

html5,canvas波浪動畫,canvas,波浪,canvas波浪動畫進度條

這里需要主要,繪制的區域要比Canvas大來隱藏搖擺校正的圖像,上面使用了200200的Canvas。

大家把代碼clone下來可以試試把它繪制到一個大的Canvas上就可以明白。

這里通過if (-1  offset === d2) offset = 0;來實現無限循環。

d2就是一個波峰+波谷的長度。一個波峰+一個波谷之后又開始同樣的生命周期和從0開始一樣,所以可以重置為0。

了解globalCompositeOperation

globalCompositeOperation 屬性說明了繪制到畫布上的顏色是如何與畫布上已有的顏色組合起來的。

繪制大波浪進度圖會用到:

ctx.globalCompositeOperation = "destination-atop";

destination-atop意義:畫布上已有的內容只會在它和新圖形重疊的地方保留。新圖形繪制于內容之后。

當然,globalCompositeOperation還有很多選項,這里不一一列舉,大家可以試試設置其他的屬性來調整出很酷炫的疊加特效。

整體實現

var img = new Image();function tick() {    ...    ...    ctx.fill();    ctx.globalCompositeOperation = "destination-atop";    ctx.drawImage(img, 0, 0);    requestAnimationFrame(tick);}img.onload = function () {    tick();};img.src = "asset/alloy.png";

為了代碼簡單直接,這里免去了封裝一個加載器的代碼,直接通過new Image來設置src來加載圖片。

 在繪制完矢量圖之后,設置globalCompositeOperation,然后再繪制企鵝圖片,繪制順序不能搞錯。

最后

實例下載:demo

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到HTML教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
自拍偷拍亚洲区| 成人做爰www免费看视频网站| 欧美国产日韩一区二区三区| 国产精品成人一区| 国产综合香蕉五月婷在线| 国产精品久久久| 成人黄色影片在线| 97高清免费视频| 欧美老女人性生活| 欧洲成人性视频| 欧美精品性视频| 久久免费视频这里只有精品| 91人人爽人人爽人人精88v| 亚洲无限av看| 欧美精品xxx| 国产精品v片在线观看不卡| 日韩精品视频在线免费观看| 久久久久久免费精品| 欧美高清理论片| 国产精品一区二区久久久久| 欧美亚洲一区在线| 亚洲欧美一区二区三区久久| 久久精品国产综合| 97国产suv精品一区二区62| 一本久久综合亚洲鲁鲁| 国产精品手机播放| 伊人亚洲福利一区二区三区| 成人免费视频xnxx.com| 亚洲高清免费观看高清完整版| 成人午夜在线影院| 久久成人人人人精品欧| 最新亚洲国产精品| 在线观看亚洲区| 日韩中文av在线| 国产在线a不卡| 亚洲免费一在线| 日韩在线观看免费网站| 亚洲在线第一页| 永久免费精品影视网站| 亚洲国产精品成人va在线观看| 永久免费看mv网站入口亚洲| 91久久久久久| 一区国产精品视频| 亚洲成色999久久网站| 欧美极品第一页| 国产成人a亚洲精品| 亚洲精品成人免费| 精品久久久久久久久中文字幕| 久久久久久一区二区三区| 国产精品久久久久久久9999| 日本精品久久久久影院| 国产成人综合精品在线| 久久久免费高清电视剧观看| 日韩中文理论片| 欧美日韩午夜剧场| 欧美午夜性色大片在线观看| 69国产精品成人在线播放| 丝袜亚洲另类欧美重口| 日韩欧美高清视频| 国产精品专区第二| 久热在线中文字幕色999舞| 色琪琪综合男人的天堂aⅴ视频| 久久这里有精品| 美女久久久久久久久久久| 久久久精品亚洲| 国内精品久久久久影院 日本资源| 欧美成人精品一区二区三区| 日韩a**站在线观看| 欧美夫妻性视频| 国产有码在线一区二区视频| 国产精品成av人在线视午夜片| 自拍亚洲一区欧美另类| 久久人人爽人人爽爽久久| 精品一区二区三区四区在线| 亚洲在线视频观看| 日韩视频免费大全中文字幕| 亚洲理论片在线观看| 欧美多人乱p欧美4p久久| 欧美日韩亚洲精品一区二区三区| 国产精品一二三在线| 国产精品男女猛烈高潮激情| 欧美日韩国产区| 国产精品黄色影片导航在线观看| 日韩中文字幕在线免费观看| 欧美精品免费看| 精品成人69xx.xyz| 欧美黄色片在线观看| 亚洲第一福利在线观看| 欧美在线观看网址综合| 97视频在线免费观看| 国产三级精品网站| 亚洲视频在线观看| 久久好看免费视频| 精品在线小视频| 91精品视频免费| 亚洲va欧美va在线观看| 九九热这里只有精品免费看| 国产精品久久婷婷六月丁香| 亚洲成人黄色在线观看| 日韩欧美aaa| 国产精品高潮粉嫩av| 亚洲偷欧美偷国内偷| 国产有码在线一区二区视频| 日韩美女免费观看| 欧美日韩在线免费| 91成品人片a无限观看| 欧美日韩日本国产| 91精品国产自产在线| 亚洲欧洲黄色网| 亚洲精品国产精品乱码不99按摩| 日韩激情视频在线| 亚洲国语精品自产拍在线观看| 色噜噜狠狠狠综合曰曰曰| 51色欧美片视频在线观看| 国产精品夜间视频香蕉| 色偷偷av亚洲男人的天堂| 97久久精品人搡人人玩| 欧美黄色片在线观看| 亚洲精品欧美日韩专区| 日韩欧美精品免费在线| xxx欧美精品| 国产精品久久久久久久久影视| 一区二区三区无码高清视频| 日韩大胆人体377p| 欧美一级片在线播放| 亚洲国产欧美久久| 国产精品永久免费在线| 成人av在线天堂| 欧美电影免费观看网站| 91丝袜美腿美女视频网站| 日韩av免费在线观看| 51精品在线观看| 超碰日本道色综合久久综合| 欧美刺激性大交免费视频| 亚洲欧美色婷婷| 欧美综合在线观看| 亚洲精品乱码久久久久久金桔影视| 成人精品在线视频| 欧美天堂在线观看| 国产精品稀缺呦系列在线| 久久久亚洲天堂| 成人免费淫片视频软件| 欧美激情精品久久久久| 97在线视频免费观看| 亚洲成人网av| 日本精品久久久久久久| 亚洲国产古装精品网站| 大桥未久av一区二区三区| 国产精品久久999| 欧美疯狂性受xxxxx另类| 精品国偷自产在线视频| 成人做爰www免费看视频网站| 美日韩精品视频免费看| 国产91精品久久久久久久| 国产网站欧美日韩免费精品在线观看| 日韩av资源在线播放| 久久综合久中文字幕青草| www国产亚洲精品久久网站| 亚州av一区二区| 日韩欧美一区视频| 国产午夜精品视频免费不卡69堂| 亚洲变态欧美另类捆绑| 欧美一级大片在线观看| 久久精品99国产精品酒店日本|