JavaScript實(shí)現(xiàn)多球運(yùn)動(dòng)效果
本文實(shí)例為大家分享了JavaScript實(shí)現(xiàn)多球運(yùn)動(dòng)的具體代碼,供大家參考,具體內(nèi)容如下
代碼如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>多球運(yùn)動(dòng)</title> <style> *{margin:0;padding:0;} body{background-color: #90f;} .ball{position: absolute;left:0;top:0;width:100px;height:100px;background: #f0f;border-radius: 50%;} </style> </head> <body> <script> run(22)//封裝 //定義速度 var speed; function run(num){ //創(chuàng)建出num個(gè)div for(var i=0;i<num;i++){ //[2,11) 隨機(jī)速度 speed = Math.floor(Math.random()*9+2); //創(chuàng)建生成節(jié)點(diǎn) var div = document.createElement("div"); //添加類名 div.className = 'ball' //自定義屬性保存值 div.speedX = Math.floor(Math.random()*9+2) div.speedY = Math.floor(Math.random()*9+2) //將div放置到body中 document.body.appendChild(div) } //獲取元素 var box = document.getElementsByClassName( "ball" ) //獲取文檔可視區(qū)域的寬高 var maxX = document.documentElement.clientWidth - box[0].offsetWidth; var maxY = document.documentElement.clientHeight - box[0].offsetHeight; //自適應(yīng)窗口 window.onresize = function(){ maxX = document.documentElement.clientWidth - box[0].offsetWidth; maxY = document.documentElement.clientHeight - box[0].offsetHeight; } play() function play(){ for(var i=0;i<num;i++){ //獲取 var ball = box[i]; var startTop = ball.offsetTop; var startLift = ball.offsetLeft; //startTop都為零; var top = startTop + ball.speedY; var left = startLift + ball.speedX; //判斷小球是否出左右邊界 if(left <= 0 || left >= maxX){ //改變方向 ball.speedX = -ball.speedX; ball.style.background=randomColor() //判斷 if(left <= 0){ left = 0; }else if(left >= maxX){ left = maxX; } } //判斷小球是否出上下邊界 if(top <= 0 || top >= maxY ){ // 改變方向; ball.speedY = -ball.speedY; ball.style.background=randomColor() //判斷 if( top <= 0 ){ top = 0; }else if( top >= maxY ){ top = maxY; } } ball.style.top = top + "px"; ball.style.left = left + "px"; } //執(zhí)行動(dòng)畫(huà)幀 requestAnimationFrame(play); } //顏色隨機(jī) function randomColor() { var r = Math.floor(Math.random() * 256), g = Math.floor(Math.random() * 256), b = Math.floor(Math.random() * 256); return "rgb(" + r + "," + g + "," + b + ")"; } } </script> </body> </html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- js實(shí)現(xiàn)小球在頁(yè)面規(guī)定的區(qū)域運(yùn)動(dòng)
- JavaScript實(shí)現(xiàn)小球沿正弦曲線運(yùn)動(dòng)
- JS小球拋物線軌跡運(yùn)動(dòng)的兩種實(shí)現(xiàn)方法詳解
- javascript鼠標(biāo)跟隨運(yùn)動(dòng)3種效果(眼球效果,蘋(píng)果菜單,方向跟隨)
- Js實(shí)現(xiàn)簡(jiǎn)單的小球運(yùn)動(dòng)特效
- javascript實(shí)現(xiàn)10個(gè)球隨機(jī)運(yùn)動(dòng)、碰撞實(shí)例詳解
- javascript動(dòng)畫(huà)之圓形運(yùn)動(dòng),環(huán)繞鼠標(biāo)運(yùn)動(dòng)作小球
相關(guān)文章
innerHTML動(dòng)態(tài)添加html代碼和腳本兼容多個(gè)瀏覽器
innerHTML動(dòng)態(tài)添加html代碼和腳本,給某個(gè)元素的innerHTML賦值,并使得值中的js代碼有效且兼容多個(gè)瀏覽器,很棒的一個(gè)方法2014-10-10javascript點(diǎn)擊才出現(xiàn)驗(yàn)證碼
用javascript[js]實(shí)現(xiàn)的必須經(jīng)過(guò)點(diǎn)擊才能出現(xiàn)嚴(yán)重碼效果代碼2008-04-04JavaScript實(shí)現(xiàn)返回頂部按鈕案例
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)返回頂部按鈕案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11js寫(xiě)一個(gè)字符串轉(zhuǎn)成駝峰的實(shí)例
寫(xiě)一個(gè)字符串轉(zhuǎn)成駝峰的方法,使用js代碼實(shí)現(xiàn),具體如下,感興趣的朋友可以了解下哈2013-06-06js鼠標(biāo)單擊和雙擊事件沖突問(wèn)題的快速解決方法
下面小編就為大家?guī)?lái)一篇js鼠標(biāo)單擊和雙擊事件沖突問(wèn)題的快速解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07Js使用WScript.Shell對(duì)象執(zhí)行.bat文件和cmd命令
這篇文章主要介紹了Js使用WScript.Shell對(duì)象執(zhí)行.bat文件和cmd命令,需要的朋友可以參考下2014-12-12