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 相关文章推荐
在线游戏大家来找茬II
Sep 30 Javascript
给网站上的广告“加速”显示的方法
Apr 08 Javascript
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
May 21 Javascript
jQuery控制输入框只能输入数值的小例子
Mar 20 Javascript
使用jQuery validate 验证注册表单实例演示
Mar 25 Javascript
编程语言JavaScript简介
Oct 16 Javascript
基于MVC4+EasyUI的Web开发框架形成之旅之界面控件的使用
Dec 16 Javascript
js表单登陆验证示例
Oct 19 Javascript
jQuery图片轮播功能实例代码
Jan 29 Javascript
解读vue生成的文件目录结构及说明
Nov 27 Javascript
Nginx 配置多站点vhost 的方法
Jan 07 Javascript
Vue深入理解插槽slot的使用
Aug 05 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+mysql来做一个功能强大的在线计算器
2010/10/12 PHP
php强大的时间转换函数strtotime
2016/02/18 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
JavaScript的目的分析
2007/01/05 Javascript
jquery 无限级联菜单案例分享
2013/03/26 Javascript
javascript实现十秒钟后注册按钮可点击的方法
2015/05/13 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
Bootstrap3使用typeahead插件实现自动补全功能
2016/07/07 Javascript
vue.js+boostrap项目实践(案例详解)
2016/09/21 Javascript
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
2017/04/13 Javascript
jQuery超简单遮罩层实现方法示例
2018/09/06 jQuery
js使用swiper实现层叠轮播效果实例代码
2018/12/12 Javascript
jQuery实现滑动星星评分效果(每日分享)
2019/11/13 jQuery
Vue——解决报错 Computed property &quot;****&quot; was assigned to but it has no setter.
2020/12/19 Vue.js
Python+django实现简单的文件上传
2016/08/17 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
2018/10/26 Python
python接口自动化测试之接口数据依赖的实现方法
2019/04/26 Python
ERLANG和PYTHON互通实现过程详解
2019/07/05 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
python使用梯度下降算法实现一个多线性回归
2020/03/24 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
2020/04/22 Python
Python做图像处理及视频音频文件分离和合成功能
2020/11/24 Python
详解HTML5中download属性的应用
2015/08/06 HTML / CSS
贝佳斯官方网站:Borghese
2020/05/08 全球购物
物理力学求职信
2014/02/18 职场文书
财产公证书
2014/04/10 职场文书
优秀驾驶员先进事迹材料
2014/05/04 职场文书
企业年度评优方案
2014/06/02 职场文书
小学校本培训方案
2014/06/06 职场文书
车贷收入证明范本
2014/09/14 职场文书
作文之亲情600字
2019/09/23 职场文书
Django对接elasticsearch实现全文检索的示例代码
2021/08/02 Python
css3带你实现3D转换效果
2022/02/24 HTML / CSS
古见同学有交流障碍症 第二季宣传CM公开播出
2022/04/11 日漫
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python