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实现的真正的iframe高度自适应(兼容IE,FF,Opera)
Mar 07 Javascript
判断浏览器的javascript版本的代码
Sep 03 Javascript
关于innerHTML后丢失动态绑定的EVENT问题解决方法
May 19 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
Oct 23 Javascript
js简单实现竖向tab选项卡的方法
May 04 Javascript
Express框架之connect-flash详解
May 31 Javascript
基于JS实现移动端左滑删除功能
Jul 28 Javascript
vue计算属性get和set用法示例
Feb 08 Javascript
vue路由跳转传参数的方法
May 06 Javascript
vue+vant-UI框架实现购物车的复选框全选和反选功能
Nov 05 Javascript
vue实现鼠标移过出现下拉二级菜单功能
Dec 12 Javascript
vue setInterval 定时器失效的解决方式
Jul 30 Javascript
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
层叠菜单的动态生成
2006/10/09 PHP
落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
2006/12/16 PHP
thinkphp3.2.2前后台公用类架构问题分析
2014/11/25 PHP
php中使用gd库实现下载网页中所有图片
2015/05/12 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
2015/09/14 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
详解PHP中的 input属性(隐藏 只读 限制)
2017/08/14 PHP
javascript 简单抽屉效果的实现代码
2010/03/09 Javascript
jQuery '行 4954 错误: 不支持该属性或方法' 的问题解决方法
2011/01/19 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
2014/03/18 Javascript
jquery实现鼠标拖拽滑动效果来选择数字的方法
2015/05/04 Javascript
js窗口关闭提示信息(兼容IE和firefox)
2015/10/23 Javascript
JS实现选项卡实例详解
2015/11/17 Javascript
JQuery解析XML数据的几个简单实例
2016/05/18 Javascript
常用JS图片滚动(无缝、平滑、上下左右滚动)代码大全(推荐)
2016/12/20 Javascript
javascript输出AscII码扩展集中的字符方法
2016/12/26 Javascript
JavaScript 详解预编译原理
2017/01/22 Javascript
vue数据控制视图源码解析
2018/03/28 Javascript
vue结合axios与后端进行ajax交互的方法
2018/07/06 Javascript
将RGB值转换为灰度值的简单算法
2019/10/09 Javascript
关于vue里页面的缓存详解
2019/11/04 Javascript
[18:16]sakonoko 2017年卡尔集锦
2018/02/06 DOTA
[12:29]2018国际邀请赛 开幕秀
2018/08/22 DOTA
pytorch中tensor的合并与截取方法
2018/07/26 Python
我就是这样学习Python中的列表
2019/06/02 Python
Python爬虫抓取技术的一些经验
2019/07/12 Python
python3.6编写的单元测试示例
2019/08/17 Python
python自动发微信监控报警
2019/09/06 Python
CSS3的Flexbox布局的简明入门指南
2016/04/08 HTML / CSS
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
PatPat阿根廷:妈妈们的购物平台
2019/05/30 全球购物
linux面试题参考答案(5)
2014/09/01 面试题
小学毕业感言500字
2014/02/28 职场文书
2014年公司植树节活动方案
2014/03/04 职场文书
《我的伯父鲁迅先生》教学反思
2016/02/16 职场文书
2019年浪漫婚礼证婚词
2019/06/27 职场文书