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 相关文章推荐
IE与firefox之jquery用法区别
Oct 03 Javascript
一个封装js代码-----展开收起效果示例
Jul 03 Javascript
JS实现让网页背景图片斜向移动的方法
Feb 25 Javascript
Bootstrap三种表单布局的使用方法
Jun 21 Javascript
bootstrap css样式之表单
Jan 19 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
Jan 30 Javascript
JavaScript实现的商品抢购倒计时功能示例
Apr 17 Javascript
JavaScript实现反转字符串的方法详解
Apr 27 Javascript
微信小程序对接七牛云存储的方法
Jul 30 Javascript
vue2.0 如何在hash模式下实现微信分享
Jan 22 Javascript
微信小程序-可移动菜单的实现过程详解
Jun 24 Javascript
Vue仿微信app页面跳转动画效果
Aug 21 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解压文件代码实现php在线解压
2014/02/13 PHP
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
2009/07/19 Javascript
JQuery的自定义事件代码,触发,绑定简单实例
2013/08/01 Javascript
Javascript 遍历页面text控件详解
2014/01/06 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
2014/06/24 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
JS实现适合于后台使用的动画折叠菜单效果
2015/09/21 Javascript
Node.js插件安装图文教程
2016/05/06 Javascript
在localStorage中存储对象数组并读取的方法
2016/09/24 Javascript
使用微信小程序开发前端【快速入门】
2016/12/05 Javascript
js定时器实例分享
2016/12/20 Javascript
JavaScript获取键盘按键的键码(参照表)
2017/01/10 Javascript
JavaScript自定义分页样式
2017/01/17 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
React中jquery引用的实现方法
2017/09/12 jQuery
Vue2.0系列之过滤器的使用
2018/03/01 Javascript
vue页面离开后执行函数的实例
2018/03/13 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
2019/07/31 Javascript
浅谈Vue 自动化部署打包上线
2020/06/14 Javascript
跟老齐学Python之从格式化表达式到方法
2014/09/28 Python
Pycharm 操作Django Model的简单运用方法
2018/05/23 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
2018/10/31 Python
python实现websocket的客户端压力测试
2019/06/25 Python
浅谈在django中使用filter()(即对QuerySet操作)时踩的坑
2020/03/31 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
什么是索引指示器
2012/08/20 面试题
财务部经理岗位职责
2014/02/03 职场文书
体育比赛口号
2014/06/09 职场文书
党员转正意见怎么写
2015/06/03 职场文书
军训结束新闻稿
2015/07/17 职场文书
2016年主题党日活动总结
2016/04/05 职场文书
PyTorch中的torch.cat简单介绍
2022/03/17 Python
MySQL数据管理操作示例讲解
2022/12/24 MySQL