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

 更新时间:2016年01月08日 11:22:25   作者:lostyu  
这篇文章主要介绍了JavaScript缓冲运动实现方法,简单分析了JavaScript缓冲运动的实现原理与相关运算技巧,并给出了两则实例代码予以总结分析,需要的朋友可以参考下

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

相关文章

  • 关于捕获用户何时点击window.onbeforeunload的取消事件

    关于捕获用户何时点击window.onbeforeunload的取消事件

    关于捕获用户何时点击window.onbeforeunload的取消事件的代码,需要的朋友可以参考下。
    2011-03-03
  • 详解小程序中h5页面onShow实现及跨页面通信方案

    详解小程序中h5页面onShow实现及跨页面通信方案

    这篇文章主要介绍了小程序中h5页面onShow实现及跨页面通信方案,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • 详细教你微信公众号正文页SVG交互开发技巧

    详细教你微信公众号正文页SVG交互开发技巧

    这篇文章主要介绍了详细教你微信公众号正文页SVG交互开发技巧,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • elementui更改el-dialog关闭按钮的图标d的示例代码

    elementui更改el-dialog关闭按钮的图标d的示例代码

    这篇文章主要介绍了elementui更改el-dialog关闭按钮的图标,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • JavaScript截屏功能的实现代码

    JavaScript截屏功能的实现代码

    我觉得使用JS截图的想法是非常荒谬的,首先JS没有权限调用操作系统的截图功能,其次,浏览器(BOM)也没有提供相关的截图接口,经过一番折腾,有点思路了,下面通过实例代码给大家简单介绍下js 截屏功能的实现代码,一起看看吧
    2017-07-07
  • web前端页面生成exe可执行文件的方法

    web前端页面生成exe可执行文件的方法

    这篇文章给大家介绍了Electron 怎么将网页打包成桌面应用(web前端页面怎么生成exe可执行文件),感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-02-02
  • Javascript实现一朵从含苞到绽放的玫瑰

    Javascript实现一朵从含苞到绽放的玫瑰

    今天小编就为大家分享一篇关于Javascript实现一朵从含苞到绽放的玫瑰,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • JavaScript进制数之间的互相转换

    JavaScript进制数之间的互相转换

    这篇文章主要介绍了JavaScript进制数之间的互相转换,进制转换是人们利用符号来计数的方法,下文基于JavaScript实现进制数之间的转换,有一定的知识性参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • javascript 设为首页与加入收藏兼容多浏览器代码

    javascript 设为首页与加入收藏兼容多浏览器代码

    javascript 设为首页与加入收藏兼容多浏览器代码,不过由于ie7的特殊性,设为首页不能使用,不过其它基于ie内核的浏览器都是支持的。
    2011-01-01
  • javascript实现计算指定范围内的质数示例

    javascript实现计算指定范围内的质数示例

    这篇文章主要介绍了javascript实现计算指定范围内的质数,涉及javascript数值计算与判断相关操作技巧,需要的朋友可以参考下
    2018-12-12

最新评论