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 相关文章推荐
javascript 模式设计之工厂模式详细说明
May 10 Javascript
js判断选择的时间是否大于今天的代码
Aug 20 Javascript
jQuery截取指定长度字符串的实现原理及代码
Jul 01 Javascript
jQuery 选择器详解
Jan 19 Javascript
Jquery日期选择datepicker插件用法实例分析
Jun 08 Javascript
javascript常用的方法分享
Jul 01 Javascript
jQuery实现的导航动画效果(附demo源码)
Apr 01 Javascript
微信小程序实战之自定义模态弹窗(8)
Apr 18 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
Oct 12 Javascript
详解三种方式解决vue中v-html元素中标签样式
Nov 22 Javascript
mock.js模拟数据实现前后端分离
Jul 24 Javascript
Javascript前端下载后台传来的文件流代码实例
Aug 18 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 Undefined index的问题
2009/06/01 PHP
PHP MYSQL乱码问题,使用SET NAMES utf8校正
2009/11/30 PHP
Laravel 的数据库迁移的方法
2017/07/31 PHP
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
基于Web标准的UI组件 — 树状菜单(2)
2006/09/18 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
2013/02/06 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
2013/12/13 Javascript
angularjs表格分页功能详解
2016/01/21 Javascript
jQuery基础知识点总结(必看)
2016/05/31 Javascript
微信小程序(应用号)开发新闻客户端实例
2016/10/24 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
纯js实现的积木(div层)拖动功能示例
2017/07/19 Javascript
jQuery接受后台传递的List的实例详解
2017/08/02 jQuery
jQuery事件对象的属性和方法详解
2017/09/09 jQuery
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
JS为什么说async/await是generator的语法糖详解
2019/07/11 Javascript
Vue源码分析之Vue实例初始化详解
2019/08/25 Javascript
原生js实现瀑布流效果
2020/03/09 Javascript
原生JavaScript创建不可变对象的方法简单示例
2020/05/07 Javascript
element-ui点击查看大图的方法示例
2020/12/14 Javascript
[50:28]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs KG
2018/04/01 DOTA
python实现读取大文件并逐行写入另外一个文件
2018/04/19 Python
python提取图像的名字*.jpg到txt文本的方法
2018/05/10 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
李维斯德国官方网上商店:Levi’s德国
2016/09/10 全球购物
芬兰灯具网上商店:Nettilamppu.fi
2018/06/30 全球购物
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
泰国排名第一的家居用品中心:HomePro
2020/11/18 全球购物
大学生饮食连锁店创业计划书
2014/01/17 职场文书
税务干部鉴定材料
2014/02/11 职场文书
原料仓管员岗位职责
2014/04/12 职场文书
学院党的群众路线教育实践活动第一阶段情况汇报
2014/10/25 职场文书
2016学习医德医风心得体会
2016/01/25 职场文书
JS ES6异步解决方案
2021/04/29 Javascript
Python Django获取URL中的数据详解
2021/11/01 Python