JavaScript缓冲运动实现方法(2则示例)


Posted in Javascript onJanuary 08, 2016

本文实例讲述了JavaScript缓冲运动实现方法。分享给大家供大家参考,具体如下:

实现原理:(目标距离-当前距离) / 基数 = 速度(运动距离越大速度越小,运动距离和速度成反比)

(500 - oDiv.offsetLeft) / 7 = iSpeed;

需要注意:当计算出来的速度有小数时需要取整;

(500 - oDiv.offsetLeft) / 7 = iSpeed; iSpeed = iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);

例子1:滑块缓冲运动

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>缓冲运动</title>
<style>
#div1{ width:100px; height:100px; background:red; position:absolute; top:50px; left:0;}
span{ width:1px; height:300px; background:black; position:absolute; left:300px; top:0; display:block;}
</style>
<script>
window.onload = function()
{
 var oBtn = document.getElementById('btn1');
 var oDiv = document.getElementById('div1');
 oBtn.onclick = function()
 {
  startMove(oDiv, 300);
 };
};
var timer = null;
function startMove(obj, iTarget)
{
 clearInterval(timer);
 timer = setInterval(function(){
  var iSpeed = (iTarget - obj.offsetLeft)/8;
  iSpeed = iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);
  if(iTarget==obj.offsetLeft){
   clearInterval(timer);
  }else{
   obj.style.left = obj.offsetLeft + iSpeed + 'px';
  }
 }, 30);
}
</script>
</head>
<body>
<input id="btn1" type="button" value="移动" />
<div id="div1"></div>
<span></span>
</body>
</html>

例子2:侧边栏滑动

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>侧边栏滑动</title>
<style>
#div1{ width:100px; height:100px; background:red; position:absolute; right:0; top:0;}
</style>
<script>
window.onload = window.onscroll = function()
{
 var oDiv = document.getElementById('div1');
 var iScrollTop = document.documentElement.scrollTop || document.body.scrollTop;
 var clientHeight = document.documentElement.clientHeight;
 var iH = (clientHeight - oDiv.offsetHeight)/2 + iScrollTop;
 //oDiv.style.top = iH + 'px';
 startMove(oDiv, parseInt(iH));
};
var timer = null;
function startMove(obj, iTarget)
{
 clearInterval(timer);
 timer = setInterval(function(){
  var iSpeed = (iTarget - obj.offsetTop) / 8;
  iSpeed = iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);
  if(obj.offsetTop == iTarget){
   clearInterval(timer);
  }else{
   obj.style.top = obj.offsetTop + iSpeed + 'px';
  }
 }, 30);
}
</script>
</head>
<body style="height:2000px;">
<div id="div1"></div>
</body>
</html>

更多关于JavaScript运动效果相关内容可查看本站专题:《JavaScript运动效果与技巧汇总》

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

Javascript 相关文章推荐
window.open被浏览器拦截后的自定义提示效果代码
Nov 19 Javascript
JavaScript在IE中“意外地调用了方法或属性访问”
Nov 19 Javascript
让FireFox支持innerText的实现代码
Dec 01 Javascript
JavaScript在XHTML中的用法详解
Apr 11 Javascript
JS实现遮罩层效果的简单实例
Nov 12 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
Oct 25 Javascript
javascript实现的登陆遮罩效果汇总
Nov 09 Javascript
Vue.js bootstrap前端实现分页和排序
Mar 10 Javascript
详解vue事件对象、冒泡、阻止默认行为
Mar 20 Javascript
react native实现往服务器上传网络图片的实例
Aug 07 Javascript
vant中的toast层级改变操作
Nov 04 Javascript
如何在现代JavaScript中编写异步任务
Jan 31 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
Jan 08 #Javascript
基于javascript实现右下角浮动广告效果
Jan 08 #Javascript
jQuery数据类型小结(14个)
Jan 08 #Javascript
JS运动相关知识点小结(附弹性运动示例)
Jan 08 #Javascript
基于jquery实现图片上传本地预览功能
Jan 08 #Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
Jan 08 #Javascript
jQuery实现本地预览上传图片功能
Jan 08 #Javascript
You might like
php日历[测试通过]
2008/03/27 PHP
PHP控制网页过期时间的代码
2008/09/28 PHP
php HtmlReplace输入过滤安全函数
2010/07/03 PHP
PHP中include与require使用方法区别详解
2013/10/19 PHP
PHP的preg_match匹配字符串长度问题解决方法
2014/05/03 PHP
php+websocket 实现的聊天室功能详解
2020/05/27 PHP
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
2012/01/15 Javascript
js call方法详细介绍(js 的继承)
2013/11/18 Javascript
javascript中replace( )方法的使用
2015/04/24 Javascript
Angular2入门教程之模块和组件详解
2017/05/28 Javascript
AngularJS页面带参跳转及参数解析操作示例
2017/06/28 Javascript
Node.js  事件循环详解及实例
2017/08/06 Javascript
vue组件之间通信实例总结(点赞功能)
2018/12/05 Javascript
vuex(vue状态管理)的特殊应用案例分享
2020/03/03 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
2020/05/01 Javascript
vue中利用three.js实现全景图的完整示例
2020/12/07 Vue.js
node脚手架搭建服务器实现token验证的方法
2021/01/20 Javascript
javascript实现下拉菜单效果
2021/02/09 Javascript
python检测是文件还是目录的方法
2015/07/03 Python
python logging日志模块以及多进程日志详解
2018/04/18 Python
python+numpy+matplotalib实现梯度下降法
2018/08/31 Python
python实现n个数中选出m个数的方法
2018/11/13 Python
Python 调用PIL库失败的解决方法
2019/01/08 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
Python 实现将某一列设置为str类型
2020/07/14 Python
HTML5打开手机扫码功能及优缺点
2017/11/27 HTML / CSS
Html5监听手机摇一摇事件的实现
2019/11/07 HTML / CSS
ALLSAINTS英国官网:伦敦新锐潮流品牌
2016/09/19 全球购物
Keds官方网站:购买帆布运动鞋和经典皮鞋
2016/11/12 全球购物
伦敦一家非常流行的时尚精品店:Oxygen Boutique
2017/01/15 全球购物
Brookstone美国官网:独特新奇产品
2017/03/04 全球购物
高中毕业生生活的自我评价
2013/12/08 职场文书
新浪微博实习心得体会
2014/01/27 职场文书
幼儿教师工作感言
2014/02/14 职场文书
铣工实训报告
2014/11/05 职场文书
物业客服专员岗位职责
2015/04/07 职场文书