日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

(web前端每日一练)用JavaScript制作一个跟随鼠标的小球炫彩动画 /doge/doge

發布時間:2023/12/18 javascript 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (web前端每日一练)用JavaScript制作一个跟随鼠标的小球炫彩动画 /doge/doge 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

4月30日,(每日一練)Javascript案例,鼠標跟隨炫彩特效

鼠標在頁面移動的同時,生成炫彩小球移動,生成的位置跟隨鼠標位置,并在一段時間后,小球消失,類似特效:具有鼠標高光提示位置功能的運用。

建議小伙伴們先自行嘗試,

提示:綁定鼠標監聽用client索取鼠標位置,動態生成小球(div? border-radius = 50%)

利用定時器,按你喜歡的幀率(ms)更新小球的狀態,顏色,顯示程度!

本文重難點:

1、如何在生成小球的同時不造成內存的大量占用(仔細思考!在今后學習工作都很重要)

2、定時器的運用,以及update更新函數的書寫

練習本文之前必會知識:構造函數以及new一個實例的寫法及運用,dom的運用

現在給你15分鐘時間嘗試書寫代碼

---------分割線----------

--------------------------------------------------------------------------------------------------------------

時間到!

如果你成功寫出大概特效,那么,恭喜你通過了今天的每日練習!

如果沒有寫出,也不要灰心,接下來看看我的解答。

<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title> </head> <style>body {background-color: black;}.ball {position: absolute;border-radius: 50%;} </style><body><script>//創建小球類function Ball(x, y) {//x,y表示圓心this.x = x;this.y = y;this.r = 20;this.opacity = 1;this.color = colorArr[parseInt(Math.random() * colorArr.length)];// 這個小球的x增量和y的增量,使用do while語句,可以防止dX和dY都是零do {this.dX = parseInt(Math.random() * 20) - 10;this.dY = parseInt(Math.random() * 20) - 10;}while (this.dX == 0 & this.dY == 0)//初始化this.init();ballArr.push(this);};//初始化方法Ball.prototype.init = function () {//創建自己的domthis.dom = document.createElement('div');this.dom.className = 'ball';this.dom.style.width = this.r * 2 + 'px';this.dom.style.height = this.r * 2 + 'px';this.dom.style.left = this.x - this.r + 'px';this.dom.style.top = this.y - this.r + 'px';this.dom.style.backgroundColor = this.color;//孤兒節點需要上樹document.body.appendChild(this.dom);};//更新Ball.prototype.update = function () {//位置改變this.x += this.dX;this.y += this.dY;//半徑改變this.r += 0.2;//透明度改變this.opacity -= 0.01;this.dom.style.width = this.r * 2 + 'px';this.dom.style.height = this.r * 2 + 'px';this.dom.style.left = this.x - this.r + 'px';this.dom.style.top = this.y - this.r + 'px';this.dom.style.opacity = this.opacity;//防止大量內存占用!小球需要檢索并刪除!// 當透明度小于0的時候,就需要從數組中刪除自己,DOM元素也要刪掉自己if (this.opacity < 0) {// 從數組中刪除自己for (var i = 0; i < ballArr.length; i++) {if (ballArr[i] == this) {ballArr.splice(i, 1);}}// 還要刪除自己的domdocument.body.removeChild(this.dom);}}// 把所有的小球實例都放到一個數組中var ballArr = [];// 初始顏色數組var colorArr = ['#66CCCC', '#CCFF66', '#FF99CC', '#FF6666','#CC3399', '#FF6600'];// 定時器,負責更新所有的小球實例setInterval(function () {// 遍歷數組,調用調用的update方法for (var i = 0; i < ballArr.length; i++) {ballArr[i].update();}}, 20);// 鼠標指針的監聽document.onmousemove = function (e) {// 得到鼠標指針的位置var x = e.clientX;var y = e.clientY;new Ball(x, y);};</script> </body></html>

總結

以上是生活随笔為你收集整理的(web前端每日一练)用JavaScript制作一个跟随鼠标的小球炫彩动画 /doge/doge的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。