JavaScript实现多球运动效果
程序员文章站
2022-03-24 23:14:05
本文实例为大家分享了javascript实现多球运动的具体代码,供大家参考,具体内容如下代码如下:
本文实例为大家分享了javascript实现多球运动的具体代码,供大家参考,具体内容如下
代码如下:
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>多球运动</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){ //创建出num个div for(var i=0;i<num;i++){ //[2,11) 随机速度 speed = math.floor(math.random()*9+2); //创建生成节点 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" ) //获取文档可视区域的宽高 var maxx = document.documentelement.clientwidth - box[0].offsetwidth; var maxy = document.documentelement.clientheight - box[0].offsetheight; //自适应窗口 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"; } //执行动画帧 requestanimationframe(play); } //颜色随机 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>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
下一篇: 利用Python将图片中扭曲矩形的复原