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 相关文章推荐
JS 文件传参及处理技巧分析
May 13 Javascript
事件冒泡是什么如何用jquery阻止事件冒泡
Mar 20 Javascript
IE6 hack for js 集锦
Sep 23 Javascript
javascript cookie的简单应用
Feb 24 Javascript
JavaScript中判断数据类型的方法总结
May 24 Javascript
javascript中对象的定义、使用以及对象和原型链操作小结
Dec 14 Javascript
详解Vue用自定义指令完成一个下拉菜单(select组件)
Oct 31 Javascript
JavaScript中Object基础内部方法图
Feb 05 Javascript
解决vue-cli创建项目的loader问题
Mar 13 Javascript
Vue中使用sass实现换肤功能
Sep 07 Javascript
vue 循环加载数据并获取第一条记录的方法
Sep 26 Javascript
如何在Vue项目中添加接口监听遮罩
Jan 25 Vue.js
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-accelerator网站加速PHP缓冲的方法
2008/07/30 PHP
PHP仿微信多图片预览上传实例代码
2016/09/13 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
使用javascript访问XML数据的实例
2006/12/27 Javascript
分析 JavaScript 中令人困惑的变量赋值
2007/08/13 Javascript
11款新鲜的jQuery插件[附所有demo下载]
2011/01/24 Javascript
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
myEvent.js javascript跨浏览器事件框架
2011/10/24 Javascript
jQuery中复合属性选择器用法实例
2014/12/31 Javascript
AngularJS基础知识笔记之表格
2015/05/10 Javascript
css如何让浮动元素水平居中
2015/08/07 Javascript
JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
2016/03/25 Javascript
jQuery使用正则表达式限制文本框只能输入数字
2016/06/18 Javascript
AngularJS中$watch和$timeout的使用示例
2016/09/20 Javascript
AngularJS入门教程之过滤器用法示例
2016/11/02 Javascript
javascript跨域请求包装函数与用法示例
2016/11/03 Javascript
详解基于angular路由的requireJs按需加载js
2017/01/20 Javascript
Angular5集成eventbus的示例代码
2018/07/19 Javascript
react项目实践之webpack-dev-serve
2018/09/14 Javascript
js的新生代垃圾回收知识点总结
2019/08/22 Javascript
Python实现HTTP协议下的文件下载方法总结
2016/04/20 Python
python的多重继承的理解
2017/08/06 Python
ubuntu安装mysql pycharm sublime
2018/02/20 Python
解决pandas中读取中文名称的csv文件报错的问题
2018/07/04 Python
Django web框架使用url path name详解
2019/04/29 Python
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
用Python进行websocket接口测试
2020/10/16 Python
HTML5 Canvas阴影使用方法实例演示
2013/08/02 HTML / CSS
linux面试题参考答案(4)
2014/09/21 面试题
学校献爱心活动总结
2014/07/08 职场文书
授权委托书范文
2014/07/31 职场文书
2014年药店店长工作总结
2014/11/17 职场文书
导游词300字
2015/02/13 职场文书
Python中json.dumps()函数的使用解析
2021/05/17 Python
Python经常使用的一些内置函数
2022/04/11 Python