JS div匀速移动动画与变速移动动画代码实例


Posted in Javascript onMarch 26, 2019

1.匀速移动代码

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>title</title>
 <style>
  * {
   margin: 0;
   padding: 0;
  }
 
  div {
   margin-top: 20px;
   width: 200px;
   height: 100px;
   background-color: green;
   position: absolute;
   left: 0;
   top: 0;
  }
 </style>
</head>
<body>
<input type="button" value="移动到400px" id="btn1"/>
<input type="button" value="移动到800px" id="btn2"/>
<div id="dv">
 <script src="common.js"></script>
 <script>
  //点击按钮移动div
 
  my$("btn1").onclick = function () {
   animate(my$("dv"), 400);
  };
  my$("btn2").onclick = function () {
   animate(my$("dv"), 800);
  };
 
  //匀速动画
  function animate(element, target) {
   //清理定时器
   clearInterval(element.timeId);
   element.timeId = setInterval(function () {
    //获取元素的当前位置
    var current = element.offsetLeft;
    //移动的步数
    var step = 10;
    step = target > current ? step : -step;
    current += step;
    if (Math.abs(current - target) > Math.abs(step)) {
     element.style.left = current + "px";
    } else {
     clearInterval(element.timeId);
     element.style.left = target + "px";
    }
   }, 20);
  }
 </script>
</div>
</body>
</html>

2.变速移动代码

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>title</title>
 <style>
  * {
   margin: 0;
   padding: 0;
  }
 
  div {
   margin-top: 20px;
   width: 200px;
   height: 100px;
   background-color: green;
   position: absolute;
   left: 0;
   top: 0;
  }
 </style>
</head>
<body>
<input type="button" value="移动到400px" id="btn1"/>
<input type="button" value="移动到800px" id="btn2"/>
<div id="dv">
 <script src="common.js"></script>
 <script>
  //点击按钮移动div
 
  my$("btn1").onclick = function () {
   animate(my$("dv"), 400);
  };
  my$("btn2").onclick = function () {
   animate(my$("dv"), 800);
  };
 
  //变速动画
  function animate(element, target) {
   //清理定时器
   clearInterval(element.timeId);
   element.timeId = setInterval(function () {
    //获取元素的当前位置
    var current = element.offsetLeft;
    //移动的步数
    var step = (target-current)/10;
    step = step>0?Math.ceil(step):Math.floor(step);
    current += step;
    element.style.left = current + "px";
    if(current==target) {
     //清理定时器
     clearInterval(element.timeId);
    }
    
   }, 20);
  }
 </script>
</div>
</body>
</html>

common.js

/**
 * 获取指定标签对象
 * @param id 标签的id属性值
 * @returns {Element}根据id属性值返回指定标签对象
 */
function my$(id) {
  return document.getElementById(id);
}

以上所述是小编给大家介绍的JS div匀速移动动画与变速移动动画详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript 继承实现方法
Aug 26 Javascript
Javascript 异步加载详解(浏览器在javascript的加载方式)
May 20 Javascript
通过Javascript读取本地Excel文件内容的代码示例
Apr 08 Javascript
Js控制滑轮左右滑动实例
Feb 13 Javascript
简单谈谈JavaScript的同步与异步
Dec 31 Javascript
js遍历map javaScript遍历map的简单实现
Aug 26 Javascript
js 中获取制定的cook信息实现方法
Nov 19 Javascript
基于JavaScript实现熔岩灯效果导航菜单
Jan 04 Javascript
Angular2入门教程之模块和组件详解
May 28 Javascript
vue拖拽排序插件vuedraggable使用方法详解
Aug 21 Javascript
深入学习JavaScript中的bom
May 27 Javascript
p5.js码绘“跳动的小正方形”的实现代码
Oct 22 Javascript
vue cli3.0结合echarts3.0与地图的使用方法示例
Mar 26 #Javascript
详解用JS添加和删除class类名
Mar 25 #Javascript
详解javascript设计模式三:代理模式
Mar 25 #Javascript
js实现鼠标拖拽缩放div实例代码
Mar 25 #Javascript
Vue框架下引入ActiveX控件的问题解决
Mar 25 #Javascript
9102了,你还不会移动端真机调试吗
Mar 25 #Javascript
详解原生JS回到顶部
Mar 25 #Javascript
You might like
php下获取客户端ip地址的函数
2010/03/15 PHP
解析php通过cookies获取远程网页的指定代码
2013/06/25 PHP
php获取301跳转URL简单实例
2013/12/16 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
2014/04/09 PHP
php线性表的入栈与出栈实例分析
2015/06/12 PHP
PHP实现的QQ空间g_tk加密算法
2015/07/09 PHP
PHP实现图片的等比缩放和Logo水印功能示例
2017/05/04 PHP
laravel学习笔记之模型事件的几种用法示例
2017/08/15 PHP
ComboBox 和 DateField 在IE下消失的解决方法
2013/08/30 Javascript
JavaScript中数组成员的添加、删除介绍
2014/12/30 Javascript
TinyMCE提交AjaxForm获取不到数据的解决方法
2015/03/05 Javascript
JSON+Jquery省市区三级联动
2016/01/13 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
JavaScript中浅讲ajax图文详解
2016/11/11 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
2017/01/11 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
bootstrap中模态框、模态框的属性实例详解
2017/02/17 Javascript
Vue computed计算属性的使用方法
2017/07/14 Javascript
Vue 中 template 有且只能一个 root的原因解析(源码分析)
2020/04/11 Javascript
详解Vue中的watch和computed
2020/11/09 Javascript
Python实现的多线程http压力测试代码
2017/02/08 Python
Python的多维空数组赋值方法
2018/04/13 Python
python spyder中读取txt为图片的方法
2018/04/27 Python
Python流程控制常用工具详解
2020/02/24 Python
超全Python图像处理讲解(多模块实现)
2020/04/13 Python
24个canvas基础知识小结
2014/12/17 HTML / CSS
opencv实现图像几何变换
2021/03/24 Python
毕业生应聘幼儿园的自荐信
2013/11/20 职场文书
应届大学生求职信
2013/12/01 职场文书
妈妈的账单教学反思
2014/02/06 职场文书
2014年反洗钱工作总结
2014/11/22 职场文书
婚内分居协议书范文
2014/11/26 职场文书
暑期工社会实践报告
2015/07/13 职场文书
小学班主任研修日志
2015/11/13 职场文书
2016新教师岗前培训心得体会
2016/01/08 职场文书
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android