JS实现水平移动与垂直移动动画


Posted in Javascript onDecember 19, 2019

本文实例为大家分享了JS实现水平移动与垂直移动的具体代码,供大家参考,具体内容如下

水平移动分析:

可看成是一个物体的左边距变化。

比如:向右移动是左边距越来越大(数值为正),可调整物体的左边距来实现

向左移动是左边距越来越小(数值为负),可调整物体的左边距来实现

实际代码如下:

<style>
    *{padding: 0;margin: 0px;}
    #box{width: 100px;height: 100px;border-radius: 50%;background: red;position: absolute;top: 50px;left: 0;}
</style>
<body>
  <button id="btn">向右</button>
  <button id="btn1">向左</button>
  <div id="box"></div>
  <script>
    var box=document.getElementById('box');
    //速度
    var index=10;
    //定时器编号
    var b;
    //添加向右点击事件
    document.getElementById('btn').onclick=function(){
      clearInterval(b);//清除上一个定时器执行的事件
      b=setInterval(getMove,100,index);//每100毫秒执行一次getMove函数
    }
    //添加向左点击事件
    document.getElementById('btn1').onclick=function(){
      clearInterval(b);//清除上一个定时器执行的事件
      b=setInterval(getMove,100,-index);//每100毫秒执行一次getMove函数
    }
    //box移动位置
    function getMove(index){
      //获取box的左距离
      var a=window.getComputedStyle(box,null).left;
      a=parseInt(a);//转换为数值
      box.style.left=a+index+'px'//计算box的左距离
    }
  </script>
</body>

垂直移动分析:

可看成是一个物体的上边距变化。

比如:向下移动是上边距越来越大(数值为正),可调整物体的上边距来实现

向上移动是上边距越来越小(数值为负),可调整物体的上边距来实现

实际代码如下:

<style>
    *{padding: 0;margin: 0px;}
    #box{width: 100px;height: 100px;border-radius: 50%;background: red;position: absolute;top: 50px;left: 0;}
</style>
<body>
  <button id="btn">向下</button>
  <button id="btn1">向上</button>
  <div id="box"></div>
  <script>
    var box=document.getElementById('box');
    //速度
    var index=10;
    //定时器编号
    var b;
    //添加向下点击事件
    document.getElementById('btn').onclick=function(){
      clearInterval(b);//清除上一个定时器执行的事件
      b=setInterval(getMove,100,index);//每100毫秒执行一次getMove函数
    }
    //添加向上点击事件
    document.getElementById('btn1').onclick=function(){
      clearInterval(b);//清除上一个定时器执行的事件
      b=setInterval(getMove,100,-index);//每100毫秒执行一次getMove函数
    }
    //box移动位置
    function getMove(index){
      //获取box的上距离
      var a=window.getComputedStyle(box,null).top;
      a=parseInt(a);//转换为数值
      box.style.top=a+index+'px'//计算box的上距离
    }
  </script>
</body>

有补充得请留言!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS按位非(~)运算符与~~运算符的理解分析
Jul 31 Javascript
jquery 实现checkbox全选,反选,全不选等功能代码(奇数)
Oct 24 Javascript
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
Jan 29 Javascript
深入探寻javascript定时器
Jan 02 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
Feb 27 Javascript
浅谈angularJS 作用域
Jul 05 Javascript
jQuery同步提交示例代码
Dec 12 Javascript
浅析上传头像示例及其注意事项
Dec 14 Javascript
Node.js 中exports 和 module.exports 的区别
Mar 14 Javascript
JavaScript数组去重的方法总结【12种方法,号称史上最全】
Feb 28 Javascript
Jquery Fade用法详解
Nov 06 jQuery
超详细小程序定位地图模块全系列开发教学
Nov 24 Javascript
5分钟快速看懂ES6中的反射与代理
Dec 19 #Javascript
d3.js实现图形拖拽
Dec 19 #Javascript
d3.js实现图形缩放平移
Dec 19 #Javascript
微信小程序批量上传图片到七牛(推荐)
Dec 19 #Javascript
echarts实现折线图的拖拽效果
Dec 19 #Javascript
Vue中使用Lodop插件实现打印功能的简单方法
Dec 19 #Javascript
Echarts实现单条折线可拖拽效果
Dec 19 #Javascript
You might like
PHP进阶学习之类的自动加载机制原理分析
2019/06/18 PHP
jquery遍历checkbox介绍
2014/02/21 Javascript
zepto.js中tap事件阻止冒泡的实现方法
2015/02/12 Javascript
JavaScript中textRange对象使用方法小结
2015/03/24 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
2015/08/04 Javascript
jQuery实现滚动切换的tab选项卡效果代码
2015/08/26 Javascript
详解Nodejs 通过 fs.createWriteStream 保存文件
2017/10/10 NodeJs
微信小程序倒计时功能实例代码
2018/07/17 Javascript
vue elementUI table 自定义表头和行合并的实例代码
2019/05/22 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
2019/06/27 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
python实现文件分组复制到不同目录的例子
2014/06/04 Python
python构建深度神经网络(续)
2018/03/10 Python
对pandas中apply函数的用法详解
2018/04/10 Python
对python中字典keys,values,items的使用详解
2019/02/03 Python
Python3 max()函数基础用法
2019/02/19 Python
python中对数据进行各种排序的方法
2019/07/02 Python
python虚拟环境完美部署教程
2019/08/06 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
Python类class参数self原理解析
2020/11/19 Python
详解H5本地储存Web Storage
2017/07/03 HTML / CSS
联想澳大利亚官网:Lenovo Australia
2018/01/18 全球购物
意大利顶级奢侈品电商:LUISAVIAROMA(支持中文)
2020/05/26 全球购物
介绍一下javax.servlet.Servlet接口及其主要方法
2015/11/30 面试题
军校制空专业毕业生自我鉴定
2013/11/16 职场文书
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
央视元宵晚会主持串词
2014/03/25 职场文书
大学理论知识学习自我鉴定
2014/04/28 职场文书
班级出游活动计划书
2014/08/15 职场文书
实习推荐信格式模板
2015/03/27 职场文书
裁员通知
2015/04/25 职场文书
python 破解加密zip文件的密码
2021/04/22 Python
Python基础数据类型tuple元组的概念与用法
2021/08/02 Python
Flutter Navigator 实现路由传递参数
2022/04/22 Java/Android