<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head> <body>
<div class="box" style="width:100px; height:100px; background-color:red; position:absolute; top: 0; left: 0;">
<!--要移动的小盒子-->
</div>
<button style="position:absolute; top:200px;">
开始
</button> <script>
var div = document.getElementsByClassName("box")[0];//选择要移动的盒子
var btn = document.getElementsByTagName("button")[0]; var timer = null;
btn.onclick = function () {//在按钮上绑定点击事件,点击按钮,盒子开始移动
var speed = 5;
clearInterval(timer);//每次运行的时候,先把上一个定时器给停止了,不然同个时间段会执行多次,会导致速度越来越快 timer = setInterval(function () {//每次执行都会把唯一标识返回到timer 想要停止就得清除唯一标识 div.style.left = div.offsetLeft + speed + "px";
//获取当前盒子的 left 加上我们设置的速度 加上 px 再赋给 小盒子
}, 50)//每50毫秒执行一次
} </script>
</body> </html>

升级版

 <!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head> <body>
<div class="box" style="width:100px; height:100px; background-color:red; position:absolute; top: 0; left: 1400px;">
<!-- Left设置小盒子在右边 -->
</div>
<button style="position:absolute; top:200px;">
开始
</button> <span style="position:absolute; left:700px; top:0; height:100px; width:0; border:1px solid black;"></span> <script>
var div = document.getElementsByClassName("box")[0];
var btn = document.getElementsByTagName("button")[0];
var span = document.getElementsByTagName('span')[0];
var timer = null; //定时器的唯一标识
btn.onclick = function () { UniformMotion(div, 700)
} function UniformMotion(dom , target){ //第一个参数,要运动的dom,第二个要停止的位置
var speed = target - dom.offsetLeft > 0 ? 7 : -7; //判断要运动的盒子在左边还是在右边 timer = setInterval(function () {
if (Math.abs(target - dom.offsetLeft) < Math.abs(speed)) {
clearInterval(timer);
dom.style.left = target + "px";
}else{
dom.style.left = dom.offsetLeft + speed + "px";
} }, 50)
}
</script>
</body> </html>

最新文章

  1. 长按TextField或TextView显示中文的粘贴复制
  2. android中xml tools属性详解
  3. Win8.1 安装Express 框架
  4. [GodLove]Wine93 Tarining Round #4
  5. 使用AsyncTask实现文件下载并且在状态中显示下载进度
  6. TortoiseGit 添加邮箱 失败保存配置
  7. Unicode : RLO
  8. POJ1222 高斯消元法解抑或方程
  9. android之硬件访问服务框架
  10. Lintcode--005(最长公共子序列)
  11. excel中自动变为插入语句的写法
  12. 从源码理解Spring原理,并用代码实现简易Spring框架
  13. [css 揭秘]:CSS揭秘 技巧(二):多重边框
  14. 推荐学习git
  15. html中src与href的区别
  16. ThinkingInJava 学习 之 0000002 操作符
  17. [SCOI2010]字符串
  18. SecureFXPortable中文乱码
  19. redis_常见问题
  20. Google揭露SHA-1碰撞,加速数据重删字节对比

热门文章

  1. iosApp上传app遇到的问题
  2. Django_models下划线__正反查询,对象正反查询
  3. const命令声明变量应注意的几点
  4. DJango 基础 (1)
  5. 两种序列化的方法 Serializable Parcelable
  6. toastr简单用法及修改垂直居中
  7. 十字线阵---CBF,传统波束形成
  8. 利用Sharding-Jdbc实现分表[z]
  9. 安卓ViewStub用法
  10. [模板]LCA