JavaScript实现多球运动效果
编程学习 2021-07-04 14:06www.dzhlxh.cn编程入门
这篇文章主要为大家详细介绍了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>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
上一篇:vue a标签点击实现赋值方式
下一篇:JavaScript实现世界各地时间显示
编程语言
- ThinkPad 笔记本如何调节LCD屏幕亮度
- Dreamweaver制作网页打开特效教程
- Win10 Mobile 10586升级后无限重启怎么办 硬重启帮您
- Win8系统提示音频设备有问题有一个或多个音频服
- Xbox One版Win10首个预览版9月份发布
- 如何在textarea文本输入区内实现换行
- Win10 Build 9901系统更新 预览版新版本下载
- McAfee Framework存在远程格式串处理漏洞
- Win10家庭版今日(7月30)正式在中国官方商城开卖
- Win10 Mobile预览版更新完10536.1000后才收到10536.100
- Win10 RS2更新了什么-Win10 RS2最终版本号1704首曝
- Windows7如何查看回收站对应的文件夹有哪些方法
- Win10让Charms栏回归桌面的方法教程
- 取消Windows XP系统开机启动画面的小技巧
- win8系统怎么下载安装USB百兆网卡?
- XP系统下磁盘空间变少了怎么办?XP系统磁盘空间