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添加重载函数的辅助方法
Jul 04 Javascript
使用JS进行目录上传(相当于批量上传)
Dec 05 Javascript
再谈querySelector和querySelectorAll的区别与联系
Apr 20 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
Sep 02 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
Mar 06 Javascript
学习JavaScript设计模式(代理模式)
Dec 03 Javascript
jQuery remove()过滤被删除的元素(推荐)
Jul 18 jQuery
angularjs2 ng2 密码隐藏显示的实例代码
Aug 01 Javascript
vue ssr 指南详读
Jun 29 Javascript
Vue-component全局注册实例
Sep 06 Javascript
js实现的格式化数字和金额功能简单示例
Jul 30 Javascript
JavaScript HTML DOM 元素 (节点)新增,编辑,删除操作实例分析
Mar 02 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
德劲1103二次变频版的打磨
2021/03/02 无线电
关于php正则匹配汉字的方法介绍
2013/04/25 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
2013/07/01 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
2014/04/30 PHP
JS特殊函数(Function()构造函数、函数直接量)区别介绍
2013/05/19 Javascript
Nodejs实现多人同时在线移动鼠标的小游戏分享
2014/12/06 NodeJs
jQuery中:animated选择器用法实例
2014/12/29 Javascript
使用jquery操作session方法分享
2015/01/22 Javascript
js实现简单计算器
2015/11/22 Javascript
js实现简单的验证码
2015/12/25 Javascript
jQuery动画效果图片轮播特效
2016/01/12 Javascript
使用AJAX实现Web页面进度条的实例分享
2016/05/06 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
2016/05/30 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
利用JavaScript实现栈的数据结构示例代码
2017/08/02 Javascript
jQuery实现可兼容IE6的遮罩功能详解
2017/09/19 jQuery
jQuery选择器之属性过滤选择器详解
2017/09/28 jQuery
详解webpack-dev-server使用http-proxy解决跨域问题
2018/01/13 Javascript
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
小程序实现列表删除功能
2018/10/30 Javascript
在vue项目中引入vue-beauty操作方法
2019/02/11 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
python中元类用法实例
2014/10/10 Python
python列表操作之extend和append的区别实例分析
2015/07/28 Python
使用Python编写简单的画图板程序的示例教程
2015/12/08 Python
Sanic框架蓝图用法实例分析
2018/07/17 Python
Django rest framework工具包简单用法示例
2018/07/20 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
2019/09/25 Python
html5简介_动力节点Java学院整理
2017/07/07 HTML / CSS
求职简历中个人的自我评价
2013/12/01 职场文书
幼儿园新学期寄语
2014/01/18 职场文书
学生逃课万能检讨书2000字
2015/02/17 职场文书
四风之害观后感
2015/06/09 职场文书
2019商业计划书格式、范文
2019/04/24 职场文书
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
2022/04/13 Java/Android