如圖,小球沿正弦函數曲線從左往右運動,達到曲線右邊界(小球運動完一個週期)會回到左邊重新開始運動。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.dot{
margin-top: 300px;
position: absolute;
width: 1px;
height: 1px;
background: #000000;
}
#ball{
width: 10px;
height: 10px;
background: red;
border: 1px solid red;
position: absolute;
border-radius: 10px;
}
</style>
</head>
<body>
<div style="position: relative; width: 600px;
height: 600px;
border: 1px solid #000000" id="draw_bo" >
</div>
<div id="ball" ></div>
<script type="text/javascript">
var dom=document.getElementById("draw_bo");
var ball=document.getElementById("ball");
var x=0,y=300;
ball.style.left=x+"px";//小球初始座標x
ball.style.top=y+"px";//小球初始座標y
for(var angle=0;angle<600;angle+=0.01){//畫正弦線
var childDot=document.createElement('div');
childDot.className='dot';
childDot.style.top=300*(Math.sin(angle*Math.PI/300))+"px";
childDot.style.left=angle+"px";
dom.appendChild(childDot);
}
var time=setInterval(function () {
x=x+5;//小球運動速度
y=Math.floor(Math.sin(x/600*2*Math.PI)*300)+300;//小球運動的高度
if(x>600) x=0;
ball.style.left=x+"px";
ball.style.top=y+"px";
},100);
</script>
</body>
</html>