国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 開發 > CSS > 正文

ES6與canvas實現鼠標小球跟隨效果

2024-07-11 09:08:04
字體:
來源:轉載
供稿:網友

最近閑來無聊,看了下ES6的語法,結合canvas實現了動畫特效——隨著鼠標的移動,會有小球跟隨且自動消失的動畫。

首先,html部分,目前就一個canvas標簽。

 <canvas id="canvas">         當前瀏覽器不支持! </canvas>

其次,css部分,沒有考慮美觀,大家喜歡的話,可以自己添加樣式

<style>        body{            margin: 90px;        }        #canvas{            box-shadow: 0 0 5px;        }    </style>

最后,看下js實現部分

<script>    const canvas = document.getElementById("canvas");    canvas.height = 600;    canvas.width = 1000;    canvas.style.backgroundColor = "#000";    const ctx = canvas.getContext("2d");    //小球類    class Ball{        constructor(x, y, color){            this.x = x;            this.y = y;            this.color = color;            //小球半徑默認40            this.r = 40;        }        //繪制小球        render(){            ctx.save();            ctx.beginPath();            ctx.arc(this.x, this.y, this.r, 0, Math.PI * 2);            ctx.fillStyle = this.color;            ctx.fill();            ctx.restore();        }    }    //移動小球    class MoveBall extends Ball{        constructor(x, y, color){            super(x, y, color);            this.dX = Math.floor(Math.random()*5+1);            this.dY = Math.floor(Math.random()*5+1);            this.dR = Math.floor(Math.random()*5+1);        }        upData(){            this.x += this.dX;            this.y += this.dY;            this.r -= this.dR;            if(this.r < 0){                this.r = 0;            }        }    }    let ballArry = [];    let colorArry = ['red', 'green', 'pink', 'yellow', 'blue'];    canvas.addEventListener("mousemove",function(e){        ballArry.push(new MoveBall(e.offsetX, e.offsetY, colorArry[Math.floor(Math.random()*5)]));    })    setInterval(function(){        ctx.clearRect(0, 0, canvas.width, canvas.height);        for(let i=0;i<ballArry.length;i++){            ballArry[i].render();            ballArry[i].upData();        }    },50);    </script>

稍作解釋下我的設計思路:

首先,獲取canvas對象,獲取上下文,設置一些基本的屬性。(canvas不做過多描述,具體的可以去w3自己研究)。然后,先定義一個Ball的類,里面有小球的圓心坐標位置,以及半徑和顏色。在定義一個畫小球的方法,具體的畫圓實現,不懂的可以去canvas文檔自己去看。

在定義一個會變的小球類并繼承Ball類。里面會有更新小球狀態的方法,用來改變小球的半徑以及顏色屬相。

最后,開啟一個定時器,當鼠標移動時,把生成的小球存儲到數組中,然后遍歷循環讀取小球,并改變小球的樣式,達到最終的效果。

最后附上完整代碼。直接拷貝瀏覽器運行。

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>會動的小球</title>    <style>        body{            margin: 90px;        }        #canvas{            box-shadow: 0 0 5px;        }    </style></head><body>    <canvas id="canvas">        當前瀏覽器不支持!    </canvas>    <script>    const canvas = document.getElementById("canvas");    canvas.height = 600;    canvas.width = 1000;    canvas.style.backgroundColor = "#000";    const ctx = canvas.getContext("2d");    //小球類    class Ball{        constructor(x, y, color){            this.x = x;            this.y = y;            this.color = color;            //小球半徑默認40            this.r = 40;        }        //繪制小球        render(){            ctx.save();            ctx.beginPath();            ctx.arc(this.x, this.y, this.r, 0, Math.PI * 2);            ctx.fillStyle = this.color;            ctx.fill();            ctx.restore();        }    }    //移動小球    class MoveBall extends Ball{        constructor(x, y, color){            super(x, y, color);            this.dX = Math.floor(Math.random()*5+1);            this.dY = Math.floor(Math.random()*5+1);            this.dR = Math.floor(Math.random()*5+1);        }        upData(){            this.x += this.dX;            this.y += this.dY;            this.r -= this.dR;            if(this.r < 0){                this.r = 0;            }        }    }    let ballArry = [];    let colorArry = ['red', 'green', 'pink', 'yellow', 'blue'];    canvas.addEventListener("mousemove",function(e){        ballArry.push(new MoveBall(e.offsetX, e.offsetY,         colorArry[Math.floor(Math.random()*5)]));    })    setInterval(function(){        ctx.clearRect(0, 0, canvas.width, canvas.height);        for(let i=0;i<ballArry.length;i++){            ballArry[i].render();            ballArry[i].upData();        }    },50);    </script></body></html>

總結

以上所述是小編給大家介紹的ES6與canvas實現鼠標小球跟隨鼠標效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!

 

注:相關教程知識閱讀請移步到CSS教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产黄色在线观看| 国产网友自拍电影在线 | 狠狠插狠狠操| 亚洲社区在线| 午夜影院免费看| 麻豆视频国产| 国产亚av手机在线观看| 国产精美视频| 99在线免费观看| 亚洲尤物在线视频| 国产在线一二三| 国产黄视频在线观看| 亚洲精品在线视频免费| 亚洲国产精品区| 99视频免费在线观看| 中文字幕在线免费| 精品国产免费观看一区| 国产字幕在线看| 在线观看国产视频| 最近中文字幕mv2018在线高清| 18被视频免费观看视频| 青青草免费在线视频| 国产经典三级在线| 国产资源在线看| 亚洲一本大道| 91视频久色| 国产一二三区在线| 激情丁香婷婷| 在线成人综合色一区| 国产高清免费av在线| 激情综合网五月激情| 在线观看午夜av| 国产精品二线| 国产一级免费看| 嫩草在线播放| 欧美日韩综合高清一区二区| 91午夜视频| 91美女在线| 精品一区二区三区高清免费不卡| 国产农村av| 免费不卡中文字幕视频| 欧美色欧美亚洲另类二区精品 | 久草视频国产| www在线视频观看| 日本在线天堂| 日韩中文字幕久久久经典网| 亚洲成人在线播放| 欧美日韩亚洲第一页| 亚洲第一区视频| 欧美精品一区二区三区免费| 激情综合丁香| 国产精品一区二区资源| 中文字幕网在线| 国产精品9区| 一本久久精品| jizz亚洲大全| 日本a级黄色| 高潮毛片在线观看| 中文字幕在线看精品乱码| 国产亚av手机在线观看| 国产激情99| 思思99精品视频在线观看| 四虎成人欧美精品在永久在线| www久久日com| 中文字幕在线观看播放| 国产激情在线观看| wwww亚洲| 国产人成网在线播放va免费| 中文资源在线网| 九色精品视频在线观看| 91美女在线| 国产美女极品在线| 国产小视频在线观看| 精品伦理一区二区| 九九热在线观看| 97在线免费| 自拍亚洲国产| 日本电影在线观看| 国产成人精品自线拍| 久久精品无码一区二区日韩av| 国产精品18久久久久久久久久| 牛牛在线精品视频| 亚洲an天堂an在线观看| 国产不卡视频| 国产小黄视频| 天堂资源最新在线| 麻豆网站在线| 亚洲成人电视网| 国产精品㊣新片速递bt| 日本高清中文字幕在线| √天堂资源中文www| 好吊日视频在线观看| 日本成人在线播放| 在线观看的av网站| 在线国产福利网站| 伊人电影在线观看| 伊人网在线观看| 国产对白叫床清晰在线播放| 国产一区精品| 国产精品久久久久一区二区国产 | 老司机精品视频一区二区| 国产精彩视频在线观看免费蜜芽| 激情五月色综合亚洲小说| eeuss影院在线观看| 99色在线观看| 国产免费视频| wwww亚洲| 国产无遮挡又黄又爽免费软件 | 欧美精品久久久久久久小说| 精品推荐国产麻豆剧传媒| 久久久久久久美女| 国产在线三区| 中文字幕视频在线| 国产福利免费观看| 亚洲夜夜综合| 国产免费黄色| 国产一级片在线播放| 国产激情在线观看| 97福利电影| wwww在线观看免费视频| 国产蜜臀av在线播放| 国产精品久久麻豆| 四虎成人欧美精品在永久在线| 四虎国产精品永久| 天堂在线免费视频| 国产精品剧情一区二区在线观看| 国产高清免费在线播放| a中文在线播放| 五月综合激情在线| 精品女厕厕露p撒尿| 日本不卡视频一区二区| 最新国产在线精品91尤物| 在线三级中文| 国产精品㊣新片速递bt| 一级黄色av| 91网页在线观看| 久久国产精品黑丝| 亚洲综合在线免费| 国产丝袜精品丝袜| 开心丁香婷婷深爱五月| 国产精品一区二三区| 在线黄色av| 69久久久久| 国产一二区视频| 国产乱视频在线观看| 日韩中文字幕久久久经典网| 国产日韩网站| 国产小视频免费在线观看| 免费女人毛片视频| av免费在线免费| 国产夫妻视频| 国产高清视频免费最新在线| 国产一卡二卡3卡4卡四卡在线| 欧美日韩久久中文字幕| 在线播放国产区| 2018狠狠干| 69av二区| av手机免费观看| 69视频在线观看| 国产精品jvid在线观看| 最近中文av字幕在线中文| 免费在线播放av| 超碰在线网站| 丁香视频五月| 天堂亚洲精品| 中文字幕在线观看av| 国产精品入口麻豆免费| 国产国语**毛片高清视频| 国产黄在线看| 四虎精品成人a在线观看| 国产极品美女到高潮| 国产精品久久久久久久久鸭| 国产激情99| www.xxx黄| 国产麻豆免费| 国产盗摄一区二区| 一本久久精品| 黄色片视频在线观看| 高清色视频在线观看| 国产午夜视频在线观看| 97一区二区三区| 超碰97国产精品人人cao| 成年人在线观看| 国产精品视频一区二区三区麻豆| 国产网红女主播精品视频| 国产一级二级在线| 99爱视频在线观看| 高潮毛片在线观看| 中文国产字幕在线观看| 日本视频在线| 国产深夜视频在线观看| av中文在线资源| 国产丝袜视频在线播放| www.av在线视频| 91av福利| 最新天堂资源在线| 久久久久久久久免费视频| 精品女厕厕露p撒尿| 丁香婷婷激情| 日本在线免费中文字幕|