JS实现的缓冲运动效果示例


Posted in Javascript onApril 30, 2018

本文实例讲述了JS实现的缓冲运动效果。分享给大家供大家参考,具体如下:

缓冲需要用到数值取整,向上取整:Math.ceil()  向下取整Math.floor()

移动的速度慢慢减慢的效果,移动速度=(终点位置 - 当前位置) / 一个数

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>3water.com JS缓冲运动</title>
<style>
#div{
  width:150px;
  height:150px;
  background:#0C6;
  position:absolute;
  left:0;
  top:50px;
}
#div2{
  background:#000;
  height:600px;
  position:absolute;
  left:500px;
  width:2px;
}
</style>
</head>
<script>
var speed;
var time;
window.onload = function(){
  var btn = document.getElementById('btn');
  btn.onclick = function(){
    speed = 0;
    move(500);
  };
  btn2.onclick = function(){
    speed = 0;
    move(0);
  };
};
function move(e){
  var div = document.getElementById('div');
  clearInterval(time);
  time = setInterval(function(){
    //改变位置,如果向左则e==500, 向上取整, 否则向右,向下取整,速度=(终点位置 - 当前位置)/一个数
    e==500 ? speed = Math.ceil((e-(div.offsetLeft))/30):speed = Math.floor((e-(div.offsetLeft))/30)
    if (e <= div.style.left){//达到,关闭定时器
      clearInterval(time);
    }
    else
    {
      div.style.left = div.offsetLeft+speed+'px';
    }
  },30);
};
</script>
<body>
<input type="button" value="向右运动" id="btn" />
<input type="button" value="向左运动" id="btn2" />
<div id = "div">
</div>
<div id = "div2">
</div>
</body>
</html>

点击此处查看在线演示效果。

或者使用本站在线HTML/js运行工具测试查看运行效果:http://tools.3water.com/code/HtmlJsRun

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jQuery 入门级学习笔记及源码
Jan 22 Javascript
node.js中使用q.js实现api的promise化
Sep 17 Javascript
DOM基础教程之使用DOM控制表格
Jan 20 Javascript
JavaScript基础函数整理汇总
Jan 30 Javascript
一步步教大家编写酷炫的导航栏js+css实现
Mar 14 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
Jun 19 Javascript
使用jQuery实现页面定时弹出广告效果
Aug 24 jQuery
微信小程序出现wx.navigateTo页面不跳转问题的解决方法
Dec 26 Javascript
Javascript 关于基本类型和引用类型的个人理解
Nov 01 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
Apr 08 Javascript
JavaScript中MutationObServer监听DOM元素详情
Nov 27 Javascript
Vue中Object.assign清空数据报错的解决方案
Mar 03 Vue.js
Vue波纹按钮组件制作
Apr 30 #Javascript
学习JS中的DOM节点以及操作
Apr 30 #Javascript
WebSocket的通信过程与实现方法详解
Apr 29 #Javascript
jQuery实现遍历XML节点和属性的方法示例
Apr 29 #jQuery
在vscode里使用.vue代码模板的方法
Apr 28 #Javascript
JS实现的透明度渐变动画效果示例
Apr 28 #Javascript
JS实现的简单折叠展开动画效果示例
Apr 28 #Javascript
You might like
Ajax PHP简单入门教程代码
2008/04/25 PHP
PHP中的use关键字概述
2014/07/23 PHP
php给一组指定关键词添加span标签的方法
2015/03/31 PHP
php封装的验证码工具类完整实例
2016/10/19 PHP
ECMAScript 创建自己的js类库
2012/11/22 Javascript
在JavaScript中处理数组之reverse()方法的使用
2015/06/09 Javascript
高效Web开发的10个jQuery代码片段
2016/07/22 Javascript
如何使用headjs来管理和异步加载js
2016/11/29 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
2017/01/10 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
ReactNative Image组件使用详解
2017/08/07 Javascript
微信小程序实现页面跳转传值以及获取值的方法分析
2017/12/18 Javascript
浅谈Webpack打包优化技巧
2018/06/12 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
2018/08/08 Javascript
vue自动化路由的实现代码
2019/09/30 Javascript
前端使用crypto.js进行加密的函数代码
2020/08/16 Javascript
Vue获取微博授权URL代码实例
2020/11/04 Javascript
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
pyspark 读取csv文件创建DataFrame的两种方法
2018/06/07 Python
Python爬取成语接龙类网站
2018/10/19 Python
python-itchat 获取微信群用户信息的实例
2019/02/21 Python
python SocketServer源码深入解读
2019/09/17 Python
Windows下实现将Pascal VOC转化为TFRecords
2020/02/17 Python
python 使用raw socket进行TCP SYN扫描实例
2020/05/05 Python
python如何更新包
2020/06/11 Python
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
美国艺术和工艺品商店:Hobby Lobby
2020/12/09 全球购物
影视艺术学院毕业生自荐信
2013/11/13 职场文书
幼儿园元旦活动感言
2014/03/02 职场文书
品质主管岗位职责
2014/03/16 职场文书
优秀德育工作者事迹材料
2014/05/07 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
怎样写离婚协议书
2015/01/26 职场文书
2015年档案管理工作总结
2015/04/08 职场文书
浅谈如何提高PHP代码的质量
2021/05/28 PHP
CentOS7设置ssh服务以及端口修改方式
2022/12/24 Servers