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 相关文章推荐
非常好的js代码
Jun 27 Javascript
javascript的trim,ltrim,rtrim自定义函数
Sep 21 Javascript
js 数组实现一个类似ruby的迭代器
Oct 27 Javascript
jQuery中ready事件用法实例
Jan 19 Javascript
JavaScript监听文本框回车事件并过滤文本框空格的方法
Apr 16 Javascript
js运动应用实例解析
Dec 28 Javascript
浅析jQuery事件之on()方法绑定多个选择器,多个事件
Apr 27 Javascript
JS 清除字符串数组中,重复元素的实现方法
May 24 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
Feb 07 Javascript
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
Jul 13 Javascript
JS中min函数实例讲解
Feb 18 Javascript
Vue Elenent实现表格相同数据列合并
Nov 30 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
简化php模板页面中分页代码的解析
2009/02/06 PHP
深入HTTP响应状态码速查表的详解
2013/06/07 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
php导入大量数据到mysql性能优化技巧
2014/12/29 PHP
PHP响应post请求上传文件的方法
2015/12/17 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
PHP获取MySQL执行sql语句的查询时间方法
2018/08/21 PHP
PHP智能识别收货地址信息实例
2019/01/05 PHP
PHP Laravel中的Trait使用方法
2019/01/20 PHP
PHP7生产环境队列Beanstalkd用法详解
2020/05/19 PHP
jquery中子元素和后代元素的区别示例介绍
2014/04/02 Javascript
Bootstrap每天必学之标签与徽章
2015/11/27 Javascript
Highcharts入门之基本属性
2016/08/02 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
浅谈jQuery hover(over, out)事件函数
2016/12/03 Javascript
js实现微博发布小功能
2017/01/12 Javascript
javascript 动态生成css代码的两种方法
2017/03/17 Javascript
AngularJS中ng-class用法实例分析
2017/07/06 Javascript
VueCli3构建TS项目的方法步骤
2018/11/07 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
Vue数据双向绑定底层实现原理
2019/11/22 Javascript
Object.keys() 和 Object.getOwnPropertyNames() 的区别详解
2020/05/21 Javascript
Vue使用v-viewer实现图片预览
2020/10/21 Javascript
[58:37]Serenity vs Fnatic 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
python实现的各种排序算法代码
2013/03/04 Python
Python 12306抢火车票脚本
2018/02/07 Python
PyQt5实现从主窗口打开子窗口的方法
2019/06/19 Python
jupyter notebook 实现matplotlib图动态刷新
2020/04/22 Python
python之语音识别speech模块
2020/09/09 Python
explicit和implicit的含义
2012/11/15 面试题
高中运动会广播稿
2014/01/21 职场文书
党的群众路线学习材料
2014/05/16 职场文书
思想作风建设心得体会
2014/10/22 职场文书
返乡农民工证明
2015/06/24 职场文书
格列佛游记读书笔记
2015/06/30 职场文书
《和时间赛跑》读后感3篇
2019/12/16 职场文书