本文提供一段JavaScript代码示例,演示如何控制小球在指定区域内自由移动并实现边界反弹。通过定时器不断更新坐标,利用offsetWidth和offsetHeight判断边界条件,调整移动方向,适合初学者练习DOM操作与动画逻辑。
JavaScript小球移动与边界反弹实现
对于正在学习JavaScript的朋友,这是一个不错的动手练习项目,有助于提升实际编码能力。
以下是参考代码实现:
具体代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>ggggg</title>
<link rel="stylesheet" type="text/css" href="">
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<!--js代码可以放置在任意位置,按照先后顺序依次执行 一般放在head标签之间-->
<script type="text/javascript">
//定义全局变量
//小球坐标
ballX=0;
ballY=0;
//小球在x,y轴移动的方向
directX=1;
directY=1;
//小球移动
function ballMove(){
//小球移动
ballX+=2*directX;
ballY+=2*directY;
//同时修改小球的top 和width
div2.style.top=ballY+'px';
div2.style.left=ballX+'px';
//window.alert(div1.offsetWidth);//offsetwidth在JS中是获取元素的宽,对应的还有offsetHeight
//判断转向
//learInterval(i);
if(ballX+div2.offsetWidth>=div1.offsetWidth ||ballX<=0){
directX=-directX;
}
if(ballY+div2.offsetHeight>=div1.offsetHeight || ballY<=0){
directY=-directY;
}
}
//定时器
var i=setInterval("ballMove()",10);
</script>
</head>
<body>
<div id="div1" style="width:400px;height:300px;border:1px solid silver;POSITION: absolute; TOP: 100px">
<div id="div2" style="position:absolute;left:0px;top:0px;"><img src="ball.png"></div>
</div>
</body>
</html>图:
