HTML5的canvas实现一个球的左右移动

本文探讨了在HTML5 canvas中创建一个球体左右移动的动画,遇到的问题是双击开始后,停止按钮失效且动画速度每次双击都会翻倍。作者尝试分析并解决这个问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!DOCTYPE html> 
<head> 
<meta charset=utf-8> 
<title>HTML5</title>
<script src="jquery-1.5.1.js"></script>
</head>
<body>
<canvas id="xu" width="500" height="200" ></canvas>
<div id="ds"></div>
<br>
<script type="text/javascript">
  var canvas = document.getElementById("xu");
  var xx = canvas.getContext("2d");
  var dir = 100;
  var width = 500;
  var height = 200;
  var exp = 1;//像素移动的位置,正数的时候向下,负数向上

function fff(){
 xx.clearRect(0,0,width,height);
 xx.fillStyle = "blue";//定义颜色
 xx.beginPath();//重新开始画,防止冲突重叠
 xx.arc(dir,100,20,0,Math.PI*2,1);//x,y坐标,半径,圆周率,
 xx.closePath();//结束画布,防止冲突重叠
 xx.fill();//渲染结束
 dir = dir + exp;
 if(dir == 0 || dir==width){
  exp = exp * (-1);//掉头位置
 }
}
 
 
</script>
 <button onclick="interval=setInterval(fff,10)">开始</button>
 <button onclick="clearInterval(interval)">停止</button>
</body> 
</html> 


 



这个不知道为啥双击开始之后,点停止没有用,而且每双击一次,速度加快(估计是翻倍),这是为什么呢

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值