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

首頁(yè) > 編程 > HTML > 正文

canvas粒子動(dòng)畫背景的實(shí)現(xiàn)示例

2024-08-26 00:20:57
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

效果 :)

不帶連線效果:

canvas,粒子動(dòng)畫

帶連線的效果:

canvas,粒子動(dòng)畫

教程

要實(shí)現(xiàn)這樣的效果其實(shí)很簡(jiǎn)單,大概分為這么幾個(gè)步驟:

創(chuàng)建canvas

首先需要在需要展示粒子背景的父元素中創(chuàng)建一個(gè)canvas標(biāo)簽, 指定widthheight, 在我們生成隨機(jī)點(diǎn)坐標(biāo)的時(shí)候需要用widthheight來(lái)做參照。widthheight等于父元素的寬和高。

// 假如父元素是bodyconst ele = document.body;const canvas = document.createElement('canvas');canvas.width = ele.clientWidth;canvas.height = ele.clientHeight;// 將canvas標(biāo)簽插入ele.appendChild(canvas);

隨機(jī)生成一定數(shù)量的點(diǎn)坐標(biāo)信息

widthheight做參照隨機(jī)生成一定數(shù)量的點(diǎn)坐標(biāo)信息,包含xyrateX(點(diǎn)在X軸的移動(dòng)速率), rateY(點(diǎn)在Y軸移動(dòng)的速率), rateXrateY決定了點(diǎn)的運(yùn)動(dòng)軌跡。

const points = [];// 隨機(jī)生成點(diǎn)的坐標(biāo),需指定radius的最大值function getPoint(radius) {  const x = Math.ceil(Math.random() * this.width), // 粒子的x坐標(biāo)    y = Math.ceil(Math.random() * this.height), // 粒子的y坐標(biāo)    r = +(Math.random() * this.radius).toFixed(4), // 粒子的半徑    rateX = +(Math.random() * 2 - 1).toFixed(4), // 粒子在x方向運(yùn)動(dòng)的速率    rateY = +(Math.random() * 2 - 1).toFixed(4); // 粒子在y方向運(yùn)動(dòng)的速率  return { x, y, r, rateX, rateY };}// 隨機(jī)生成100個(gè)點(diǎn)的坐標(biāo)信息for (let i = 0; i < 100; i++) {  points.push(this.getPoint());}

將生成的點(diǎn)數(shù)組畫到canvas上

function drawPoints() {  points.forEach((item, i) => {    ctx.beginPath();    ctx.arc(item.x, item.y, item.r, 0, Math.PI*2, false);    ctx.fillStyle = '#fff';    ctx.fill();    // 根據(jù)rateX和rateY移動(dòng)點(diǎn)的坐標(biāo)    if(item.x > 0 && item.x < width && item.y > 0 && item.y < height) {      item.x += item.rateX * rate;      item.y += item.rateY * rate;    } else {      // 如果粒子運(yùn)動(dòng)超出了邊界,將這個(gè)粒子去除,同時(shí)重新生成一個(gè)新點(diǎn)。      points.splice(i, 1);      points.push(getPoint(radius));    }  });}

畫線

遍歷點(diǎn)數(shù)組,兩兩比較點(diǎn)坐標(biāo),如果兩點(diǎn)之間距離小于某個(gè)值,在兩個(gè)點(diǎn)之間畫一條直線,lineWidth隨兩點(diǎn)之間距離改變,距離越大,線越細(xì)。

// 計(jì)算兩點(diǎn)之間的距離function dis(x1, y1, x2, y2) {  var disX = Math.abs(x1 - x2),    disY = Math.abs(y1 - y2);  return Math.sqrt(disX * disX + disY * disY);}function drawLines() {  const len = points.length;  //對(duì)圓心坐標(biāo)進(jìn)行兩兩判斷  for(let i = 0; i < len; i++) {    for(let j = len - 1; j >= 0; j--) {      const x1 = points[i].x,        y1 = points[i].y,        x2 = points[j].x,        y2 = points[j].y,        disPoint = dis(x1, y1, x2, y2);      // 如果兩點(diǎn)之間距離小于150,畫線      if(disPoint <= 150) {        ctx.beginPath();        ctx.moveTo(x1, y1);        ctx.lineTo(x2, y2);        ctx.strokeStyle = '#fff';        //兩點(diǎn)之間距離越大,線越細(xì),反之亦然        ctx.lineWidth = 1 - disPoint / distance;        ctx.stroke();      }    }  }}

動(dòng)畫

使用requestAnimationFrame循環(huán)調(diào)用draw方法(draw方法里包含畫點(diǎn)和畫線),同時(shí)在draw的時(shí)候根據(jù)rateXrateY來(lái)改動(dòng)點(diǎn)的位置。

// 調(diào)用draw函數(shù)開啟動(dòng)畫(function draw() {  ctx.clearRect(0, 0, width, height);  drawPoints();  // 如果不需要畫線,取消下面這行代碼即可。  drawLines();  window.requestAnimationFrame(draw);}());

完整代碼請(qǐng)看: https://github.com/PengJiyuan/particle-bg

我的Github:https://github.com/PengJiyuan

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到HTML教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
91porny在线| 中文字幕在线乱| 国产aⅴ爽av久久久久成人| 香蕉网站在线观看| 99久久久久国产精品免费| 日韩免费电影一区二区三区| 一区二区三区电影| a级片国产精品自在拍在线播放| 精品久久久久久一区二区里番| 亚洲一区二区在线| www.日韩av| 中文字幕欧美精品日韩中文字幕| h视频免费在线观看| 91资源在线观看| 欧美一区二区三区久久精品| 91免费观看视频在线| 天天操天天干天天做| 亚洲国产成人影院播放| 国产在线电影| 6699嫩草久久久精品影院| 亚洲国产精品第一区二区| 国产九九九九九| 精品国产91洋老外米糕| 毛片网站免费观看| 欧美日韩在线视频一区二区三区| 成人黄色在线播放| 亚洲免费视频观看| 亚洲精品成人在线| 日韩专区一卡二卡| 极品裸体白嫩激情啪啪国产精品| 91精品论坛| 国产高清精品在线观看| 5566先锋影音夜色资源站在线观看| 中文字幕在线播放网址| 99久久精品一区二区| av电影免费在线看| 欧美日韩成人免费观看| 黑丝一区二区| 里番全彩acg☆无翼乌全彩3d| 日韩激情中文字幕| 亚洲成av人片一区二区三区| 好吊色在线视频| 免费观看国产精品视频| 亚洲欧洲日夜超级视频| 91丨国产丨九色丨pron| 中文天堂在线播放| 国产一区二区不卡在线| 日韩欧美一区二区三区免费看| 国产视频一区二区视频| www.日韩精品| 巨大荫蒂视频欧美另类大| 国产午夜三级一区二区三| 国产精品jizz在线观看老狼| www视频网站| 成人18视频| 欧美一级久久久久久久久大| 成片免费观看| 精品香蕉一区二区三区| 亚洲av无码乱码国产精品| 夜夜爽夜夜操| 国产一区精品二区| 欧美午夜宅男影院在线观看| xfplay每日更新av资源| 国产又大又黑又粗| 亚洲色图视频免费播放| 欧美激情在线播放| 嫩模一区二区三区| 国产一级做a爰片在线看免费| 美国黄色小视频| 久久久综合精品| 国产黄网站在线观看| 无码日韩精品一区二区免费| 视频一区二区三区中文字幕| 色综合天天综合给合国产| 欧美成人黑人猛交| 蜜桃臀一区二区三区| 欧美亚洲国产成人精品| 成人免费观看在线| 国产精品乱码视频| 97人人爽人人| 成人av免费在线| 国产又大又长又粗| 羞羞视频免费| 欧美色网一区二区| 亚洲欧美一区二区三区孕妇| 国产精品免费麻豆入口| 成人福利免费在线观看| av在线女优影院| 99免费在线视频观看| 日韩欧乱色一区二区三区在线| 日本丰满少妇做爰爽爽| 久久国内精品自在自线400部| 亚洲午夜精品久久久久久人妖| 欧美日韩在线直播| 中文字幕在线播放不卡| 污的视频网站| 久久久久亚洲av成人无码电影| 无码av免费精品一区二区三区| 欧美日韩午夜电影网| 狠狠操天天操夜夜操| 亚洲污视频在线观看| 国产精品美女视频免费观看软件| 精品少妇人妻一区二区黑料社区| 国产黑丝在线观看| 猛男gaygay欧美视频| 国产精品久久久久av蜜臀| 亚洲欧洲日韩精品| 国产成人久久精品麻豆二区| 国产真实乱在线更新| 国产尤物一区二区三区| 欧美福利一区二区三区| 日韩人妻一区二区三区蜜桃视频| 久久蜜桃av一区二区天堂| 手机看片国产精品| 第四色成人网| 日本aⅴ写真网站免费| 亚洲黄色免费三级| 免费看污片的软件| 亚洲天堂av中文字幕| 成人av男人的天堂| 一区二区三区四区视频在线| 九九99玖玖| jvid福利写真一区二区三区| 国产精品初高中精品久久| 黄色在线播放| 性欧美又大又长又硬| 成人欧美一区二区三区黑人孕妇| 中文字幕亚洲色图| 免费黄色av片| 亚洲调教视频在线观看| 亚洲精品国产第一综合99久久| 国产成人免费精品| 亚洲精品人成电影网| 中文字幕在线视频一区二区三区| 四虎国产精品永久免费观看视频| 中文在线一二区| 成人精品视频一区二区三区尤物| 夜夜嗨av色一区二区不卡| 麻豆传媒mv| 麻豆国产精品va在线观看不卡| 91精品成人| 神马午夜dy888| 午夜国产福利在线| 亚洲图片欧美日韩| 懂色av懂色av粉嫩av| av亚洲一区二区三区| 成年女人免费毛片视频永久| 伊人色综合久久久| 老太脱裤让老头玩ⅹxxxx| 日韩av一卡二卡三卡| 日韩网站在线看片你懂的| 性欧美videos另类喷潮| 日韩电影在线观看电影| 99re亚洲国产精品| 精品国产乱码一区二区三区| 亚洲v国产v在线观看| 久久久综合视频| 欧美一区二区三区在线观看| 日本一二三区在线| 91精品国产综合久久久久久漫画| 美女av免费观看| 老司机精品福利视频| 伊人色综合一区二区三区影院视频| 国产三级三级三级看三级| 在线观看久久av| 丰满少妇高潮一区二区| av在线电影院| xxxwww在线观看| 国产精品久久久久免费a∨大胸| 欧美日韩黄色| 人人做人人澡人人爽欧美| 日韩欧美一区在线| 91尤物视频在线观看| 色哟哟中文字幕| 欧美黄色aaaa| 在线视频 中文字幕| 精品久久久久久久免费人妻| 50一60岁老妇女毛片| 777久久久精品| 狠狠久久亚洲欧美| 久久久久久中文| 高清一区二区| 天堂中文字幕一二区| 国产精品自拍av| 亚洲va欧美va人人爽成人影院| 亚洲国产小视频在线观看| 黄色片视频免费观看| 老牛影视免费一区二区| 欧美一区国产在线| av国产在线观看| 一区二区三区黄| 日韩成人久久| 男人的天堂免费在线视频| **日韩最新| 欧美片网站yy| 欧美一区二区三区不卡| 亚洲成色999久久网站| 日韩欧美国产综合在线一区二区三区| 亚洲欧美另类综合| 91破解版在线看| 欧美一区二区三区四区五区六区| www.色偷偷.com| 欧美中文字幕精在线不卡| 日韩欧美一级| 午夜精品久久久久久99热软件| 欧美一区二区三区在线看| 国产精品亚洲四区在线观看| 亚洲国产综合自拍| 动漫精品一区二区三区| 三年片免费观看大全| 欧美三级欧美成人高清www| 亚洲午夜精品| 99国内精品久久久久| 在线观看的毛片| 国产午夜精品在线| 亚洲电影免费观看高清完整版在线观看| 99久久精品国产一区色| 91福利国产精品| jizzjizz大全| 青青草国产一区二区三区| 不卡毛片在线看| 一级香蕉视频在线观看| 2024亚洲男人天堂| 精品综合免费视频观看| 91久久人澡人人添人人爽欧美| 九九九九九国产| 国产成人麻豆精品午夜在线| 九草视频在线观看| 精品久久久无码中文字幕| 欧美搞黄网站| 国产精品国产精品国产专区不卡| 欧美怡春院一区二区三区| 亚洲视频免费在线| 国产成在线观看免费视频| 精品影视av免费| 日韩在线中文字幕视频| 一本久久知道综合久久| 精品一级视频| 蜜桃一区av| 欧美成在线观看| 一区二区三区高清不卡| 91网在线播放| 狠狠操夜夜操| 91丨porny丨九色| 激情视频网站在线观看| 草草久视频在线观看电影资源| av中文字幕电影在线看| 国产日产久久高清欧美一区| 国产成人香蕉在线视频fuz| 成人国产免费视频| 激情欧美成人久久综合小说| 国产羞羞视频在线观看| 欧美婷婷在线| 天天操天天摸天天爽| 懂色中文一区二区三区在线视频| 欧美三级中文字幕在线观看| 欧美特黄视频| 国产69精品久久久久9999apgf| 亚洲承认在线| 2018天天弄| 自拍偷拍亚洲一区| www999久久| 精品国产91九色蝌蚪| 精品伦理一区二区三区| 极品国产人妖chinesets亚洲人妖| 丁香花五月婷婷| 日本成人伦理电影| 久久国产精品偷| 我和岳m愉情xxxⅹ视频| 91社在线播放| 免费在线观看精品| 中文字幕在线亚洲三区| 91综合在线| 国产成人av免费看| 国产精品视屏| 在线观看中文字幕的网站| 国模吧一区二区| 日本二三区不卡| 男人在线观看视频| 欧美疯狂xxxx大交乱88av| 中文字幕人妻熟女人妻洋洋| 尤物九九久久国产精品的特点| 成人国产精品一区| 1024手机在线视频| 欧美精品成人网| 91精品国产色综合久久不8| 成人18视频| 一个人免费视频www在线观看| 成视频在线观看免费观看| 中文高清一区| 亚洲超碰97人人做人人爱| 亚洲成熟女性毛茸茸| 韩国一区二区三区美女美女秀| 中国女人特级毛片| 中文字幕国产高清| 91蝌蚪|人| 五月综合激情日本mⅴ| 26uuu另类欧美| 午夜黄色一级片| 9191成人精品久久| 成人在线看视频| 欧美一区国产一区| 欧美日韩一视频区二区| 黑人精品一区二区| 亚洲成人久久久| 亚洲tv在线| 日韩伦理在线观看| 免费成人在线视频观看| 51蜜桃传媒精品一区二区| 国产不卡视频在线观看| 精品福利网址导航| 亚洲免费观看高清在线观看| 久久国产日韩| 亚洲精品久久久久久动漫器材一区| 亚洲av无码国产精品麻豆天美| 手机精品视频在线| 亚洲第一网站免费视频| 欧美性猛交xxxx乱大交3| 黄色av网站在线免费观看| 亚洲国产欧美一区| 一级全黄裸体免费视频| 欧美日韩在线视频一区二区| 欧美男男青年gay1069videost| 欧美精品 国产精品| 亚洲天堂在线视频观看| 96av麻豆蜜桃一区二区| 亚洲成人午夜在线| jk漫画禁漫成人入口|