当前位置: 首页 > 编程笔记 >

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

凌联
2023-03-14
本文向大家介绍JavaScript缓冲运动实现方法(2则示例),包括了JavaScript缓冲运动实现方法(2则示例)的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了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程序设计有所帮助。

 类似资料:
  • 本文向大家介绍js实现缓冲运动效果的方法,包括了js实现缓冲运动效果的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js实现缓冲运动效果的方法。分享给大家供大家参考。具体分析如下: 该实例可实现一开始速度很快,然后慢下来,直到停止的效果。 要点: 目标点减去元素的当前位置的值除以8,因为offsetleft的值是一直在变大,所以速度的值也是一直的变小 正向速度的时候向上取整,反向速度

  • 本文向大家介绍JS多物体实现缓冲运动效果示例,包括了JS多物体实现缓冲运动效果示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS多物体实现缓冲运动效果的方法。分享给大家供大家参考,具体如下: 更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript运动效果与技巧汇总》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、

  • https://www.17sucai.com/pins/44884.html 这个演示页面每次用鼠标滚轮滚动的时,页面滚动都是由快到慢,是怎么实现的? 好像用Edge浏览器也有类似的效果?

  • 是否有任何方法可以使用实现文件追加器,它将在内存中存储特定大小的日志,然后将日志写入文件(本地/远程) 有什么办法可以做到这一点吗? 在log4j2文档中: FastFileAppender与标准的类似,只是它总是被缓冲(不能关闭),并且在内部使用而不是。与使用“” bufferedIO:(布尔值)的FileAppender相比,我们看到了20-200%的性能改进。如果为true,则默认情况下,当

  • 本文向大家介绍javascript匀速运动实现方法分析,包括了javascript匀速运动实现方法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript匀速运动实现方法。分享给大家供大家参考,具体如下: 匀速运动步骤: 1. 清除定时器 2. 开启定时器 3. 运动是否完成:a、运动完成,清除定时器;b、运动未完成继续 匀速运动停止条件:距离足够近  Math.abs(当

  • 本文向大家介绍JavaScript实现的Tween算法及缓冲特效实例代码,包括了JavaScript实现的Tween算法及缓冲特效实例代码的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript实现的Tween算法及缓冲特效。分享给大家供大家参考,具体如下: 这里演示Tween 算法及缓冲特效的JavaScript代码,利用它可以做缓动、弹簧等很多动画效果,怎么利用flash的