久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx

HTML5Canvas玩轉酷炫大波浪進度圖

2022-06-15    分類: 網站建設

如上圖所見,本文就是要實現上面那種效果。
由于最近AlloyTouch要寫一個下拉刷新的酷炫loading效果。所以選大波浪進度圖。
首先要封裝一下大波浪圖片進度組件。基本的原理是利用Canvas繪制矢量圖和圖片素材合成出波浪特效。



了解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();

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

嘗試繪制波浪

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();

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

這里需要主要,繪制的區域要比Canvas大來隱藏搖擺校正的圖像,上面使用了200200的Canvas。
大家把代碼clone下來可以試試把它繪制到一個大的Canvas上就可以明白。
這里通過if (-1offset === 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,然后再繪制企鵝圖片,繪制順序不能搞錯。

最后

更多例子演示和代碼可以在Github上找到。
Github:https://github.com/AlloyTeam/AlloyTouch

當前名稱:HTML5Canvas玩轉酷炫大波浪進度圖
文章起源:http://www.js-pz168.com/news46/167546.html

成都網站建設公司_創新互聯,為您提供建站公司域名注冊手機網站建設定制開發外貿網站建設外貿建站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

商城網站建設
久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx
欧美视频一二三区| 国产精品国产a| 亚洲精品福利视频网站| 美腿丝袜一区二区三区| 成人国产精品免费观看视频| 久久一区二区三区av| 欧美三级三级三级| 日本一区二区三区国色天香| 污片在线观看一区二区| 粗大黑人巨茎大战欧美成人| 欧美成ee人免费视频| 欧美色区777第一页| 欧美国产欧美综合| 日韩av一二三| 成人情视频高清免费观看电影| 中文字幕中文字幕在线中一区高清| 欧美成人精品3d动漫h| 亚洲综合网站在线观看| 成人性生交大片免费看中文网站| 免费在线观看一区二区| 欧美一级xxx| 亚洲国产欧美日韩另类综合| 成人av电影在线| 亚洲精品中文字幕乱码三区不卡 | 欧美三级蜜桃2在线观看| 欧美国产综合色视频| 人人爽香蕉精品| 国产精品久久久久久久久久直播 | 九九久久精品视频| 国产精品日韩欧美一区二区| 欧美日韩国产精品成人| 亚洲私人影院在线观看| 粉嫩欧美一区二区三区高清影视| 日本一区视频在线观看| 久久伊人中文字幕| 喷水一区二区三区| 国内成+人亚洲| 日韩午夜在线影院| 天堂成人免费av电影一区| 97伦理在线四区| 7777精品伊人久久久大香线蕉经典版下载 | 欧美调教femdomvk| 亚洲欧美激情视频在线观看一区二区三区| 国产精品一区二区久久不卡| 日韩欧美一区二区三区四区五区| 亚洲精品一区二区三区四区高清| 日本伊人午夜精品| 精品免费一区二区三区蜜桃| 日韩美女视频在线| 男女男精品视频| 欧美资源一区| 国产欧美日韩在线观看| 国产精品77777| 色哟哟在线观看一区二区三区| 国产精品国产精品国产专区不片| 东方欧美亚洲色图在线| 色视频成人在线观看免| 亚洲色图制服诱惑 | 久久噜噜亚洲综合| 韩日av一区二区| 在线视频欧美一区| 亚洲欧美日韩一区二区| www.一区二区三区| 日韩欧美国产综合一区| 麻豆国产91在线播放| 神马影院一区二区三区| 国产精品久久久久久久第一福利 | 日韩成人伦理电影在线观看| 麻豆成人av| 国产日韩欧美在线一区| 成人精品gif动图一区| 欧美午夜电影在线播放| 亚洲va欧美va国产va天堂影院| 激情伦成人综合小说| 久久精品在线观看| 不卡高清视频专区| 欧美精选在线播放| 另类中文字幕网| 中文字幕一区二区三区5566| 亚洲午夜精品网| 欧美12av| 亚洲免费av观看| 国产一区二区不卡视频在线观看| 久久久不卡网国产精品一区| 成人性色生活片| 91精品国产综合久久久久| 极品尤物av久久免费看| 91激情五月电影| 日本美女一区二区| 亚洲最新在线| 无码av中文一区二区三区桃花岛| 日本视频一区二区不卡| 亚洲伦在线观看| 久久综合福利| 亚洲精品国产a| 欧美日韩精品中文字幕一区二区| 国产精品成人免费| 国产一区二区三区免费不卡| 中文字幕乱码亚洲精品一区| 91嫩草免费看| 国产偷v国产偷v亚洲高清| 69堂成人精品视频免费| 久久一二三国产| 91亚色免费| 国产午夜精品在线观看| 99热在线国产| 国产精品午夜春色av| 国产乱人伦精品一区二区| 国产精品欧美综合在线| 久久午夜羞羞影院免费观看| 97久久精品人人做人人爽50路| 久久综合网色—综合色88| 91香蕉视频黄| 国产日产欧美精品一区二区三区| 成人激情直播| 中文字幕亚洲在| 久久久午夜精品理论片中文字幕| 亚洲成a人片在线观看中文| 97久久精品人人做人人爽 | 不卡的av网站| 精品国产一区二区三区久久影院 | 色综合激情久久| 麻豆免费看一区二区三区| 欧美日韩一级视频| 国产一区二区久久| 欧美一级欧美三级在线观看 | 国产成人免费观看| 国产精品成人午夜| 欧洲亚洲一区二区| 亚洲午夜一二三区视频| 色哟哟在线观看一区二区三区| 理论电影国产精品| 日韩一区二区麻豆国产| 91免费观看在线| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 欧美亚洲另类在线一区二区三区| 一区二区三区成人在线视频| 色综合久久综合网欧美综合网| 国内久久精品视频| 久久综合久久综合九色| 国产精品伊人日日| 亚洲与欧洲av电影| 色狠狠综合天天综合综合| 国产经典欧美精品| 久久精品一区二区三区四区| 免费在线一区二区| 免费一级片91| 欧美不卡123| 精品国产福利| 日本午夜一本久久久综合| 欧美高清视频一二三区| 91麻豆精东视频| 亚洲免费观看在线观看| 在线视频综合导航| 成人一区在线看| 国产精品乱人伦一区二区| 五月天婷亚洲天综合网鲁鲁鲁| 激情综合一区二区三区| 久久久99久久| 亚洲国产日韩欧美| 国产精品中文有码| 国产精品色一区二区三区| 日韩精品第一页| 国产精品系列在线播放| 国产精品午夜久久| 制服诱惑一区| 成人黄色在线网站| 亚洲欧美国产毛片在线| 欧美揉bbbbb揉bbbbb| 91原创国产| 三级欧美在线一区| 精品欧美久久久| 日韩欧美精品久久| 国产精品一二三区| 亚洲欧美综合色| 欧美日韩精品一区二区| 99免费在线观看视频| 日韩不卡一区二区| 久久久久国产精品麻豆ai换脸| 日韩欧美一区二区三区四区五区| 国产精品亚洲午夜一区二区三区| 国产精品国产自产拍在线| 91精品91久久久中77777| 91久久精品一区二区别| 日本系列欧美系列| 国产日韩成人精品| 在线观看网站黄不卡| 99在线视频免费观看| 蜜桃久久久久久久| 中文字幕高清一区| 欧美性猛片xxxx免费看久爱| 国产精品美女诱惑| 裸体健美xxxx欧美裸体表演| 国产精品系列在线| 欧美日本国产一区| 麻豆亚洲一区| 国产福利一区二区三区视频在线 | 欧美在线小视频| 国产一区二区视频在线免费观看| 韩国av一区二区三区四区|