37、JavaScript的运动-----匀速运动
2016-06-20 15:40
239 查看
1、运动基础
• 让Div运动起来
• 速度——物体运动的快慢
• 运动中的Bug
– 不会停止
– 速度取某些值会无法停止
– 到达位置后再点击还会运动
– 重复点击速度加快
2、匀速运动
• 速度不变
3、运动的原理
• 在开始运动时,关闭已有定时器
• 把运动和停止隔开(if/else)
4、匀速运动的代码
• 让Div运动起来
• 速度——物体运动的快慢
• 运动中的Bug
– 不会停止
– 速度取某些值会无法停止
– 到达位置后再点击还会运动
– 重复点击速度加快
2、匀速运动
• 速度不变
3、运动的原理
• 在开始运动时,关闭已有定时器
• 把运动和停止隔开(if/else)
4、匀速运动的代码
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>运动1</title> <style type="text/css"> #div1 { width: 100px; height: 100px; position: absolute; background: red; left: 0; top: 50px; } </style> <script type="text/javascript"> var timer = null; function startMove() { var oDiv = document.getElementById('div1'); /** * 在开始运动前,先清除定时器 * 防止多次点击按钮,开多个定时器函数 * 因为定时器函数为异步的,这样的话速度会变快 */ clearInterval(timer); /** * 用于实现运动的定时器函数 */ timer = setInterval(function() { /** * 因为速度固定,所以是匀速运动 */ var iSpeed = 7; /** * 使用if和else,用于区别是否到达终点 */ if (oDiv.offsetLeft >= 300) //是否到达终点, { //速度为7为301,所以判断条件用oDiv.offsetLeft >= 300,>= clearInterval(timer); //到达终点 } else { oDiv.style.left = oDiv.offsetLeft + iSpeed + 'px'; //到达之前 } }, 30); } </script> </head> <body> <input type="button" value="开始运动" onclick="startMove()" /> <div id="div1"></div> </body> </html>
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享