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 相关文章推荐
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
Jan 27 Javascript
用Jquery选择器计算table中的某一列某一行的合计
Aug 13 Javascript
纯javascript移动优先的幻灯片效果
Nov 02 Javascript
JS原型链怎么理解
Jun 27 Javascript
浅谈angularJS中的事件
Jul 12 Javascript
js只执行1次的函数示例
Jul 20 Javascript
Angular2 组件通信的实例代码
Jun 23 Javascript
JSON 数据格式详解
Sep 13 Javascript
ES6解构赋值实例详解
Oct 31 Javascript
Vue项目打包压缩的实现(让页面更快响应)
Mar 10 Javascript
Vue Element UI自定义描述列表组件
May 18 Vue.js
Vue h函数的使用详解
Feb 18 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
smarty的保留变量问题
2008/10/23 PHP
PHP开发规范手册之PHP代码规范详解
2011/01/13 PHP
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
2016/02/04 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
php实现的顺序线性表示例
2019/05/04 PHP
jQuery 图像裁剪插件Jcrop的简单使用
2009/05/22 Javascript
JavaScript中去掉数组中的重复值的实现方法
2011/08/03 Javascript
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
2015/05/04 Javascript
JavaScript在网页中画圆的函数arc使用方法
2015/11/13 Javascript
Javascript 5种方法实现过滤删除前后所有空格
2016/06/22 Javascript
easyui导出excel无法弹出下载框的快速解决方法
2016/11/10 Javascript
JavaScript实现Fly Bird小游戏
2016/12/15 Javascript
BootStrop前端框架入门教程详解
2016/12/25 Javascript
基于javascript的Form表单验证
2016/12/29 Javascript
JavaScript实现图片切换效果
2017/08/12 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
2018/09/29 Javascript
vue-cli 项目打包完成后运行文件路径报错问题
2019/07/19 Javascript
vue实现手机端省市区区域选择
2019/09/27 Javascript
vue.js中ref及$refs的使用方法解析
2019/10/08 Javascript
在vue中高德地图引入和轨迹的绘制的实现
2019/10/11 Javascript
javascript 原型与原型链的理解及应用实例分析
2020/02/10 Javascript
解决echarts 一条柱状图显示两个值,类似进度条的问题
2020/07/20 Javascript
[02:02]2018DOTA2亚洲邀请赛Mineski赛前采访
2018/04/04 DOTA
[01:13:17]Secret vs NB 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python实现忽略大小写对字符串列表排序的方法
2014/09/25 Python
Python后台管理员管理前台会员信息的讲解
2019/01/28 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
Python socket聊天脚本代码实例
2020/01/02 Python
Mixbook加拿大:照片书,照片卡,剪贴簿,年历和日历
2017/02/21 全球购物
北美Newegg打造的全球尖货海购平台:tt海购
2018/09/28 全球购物
mysql的最长数据库名,表名,字段名可以是多长
2014/04/21 面试题
冰淇淋店的创业计划书
2014/02/07 职场文书
会计专业毕业生自荐书
2014/06/25 职场文书
公务员检讨书
2014/11/01 职场文书
亲情作文之母爱
2019/09/25 职场文书