js缓冲运动代码实例

js缓冲运动代码实例:
元素的缓冲运动效果要比匀速运动更为美观一些,因为显得更为有张力和弹性,当然对于浏览者来说可能会有更好的效果,那么留住用户的可能性也就更大,下面就通过代码实例简单介绍一下如何实现此效果。
代码实例如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style type="text/css">
div
{
  width:100px;
  height:50px;
  background:#0000FF;
  margin:10px;
}
</style>
<script type="text/javascript">
window.onload=function()
{
  var oDiv=document.getElementsByTagName(‘div‘);
  for(var i=0;i<oDiv.length;i++)
  {
    oDiv[i].timer=null;
    oDiv[i].onmouseover=function()
    {
      move(this,400);
    }
    oDiv[i].onmouseout=function()
    {
      move(this, 100);
    }
  }
};
function move(div,end)
{
  clearInterval(div.timer);
  div.timer=setInterval(function(){
    var speed=(end-div.offsetWidth) / 5;
    speed=speed>0?Math.ceil(speed):Math.floor(speed);
    if(div.offsetWidth==end)
    {
      clearInterval(div.timer);
    }
    else
    {
      div.style.width=div.offsetWidth+speed+‘px‘;
    }
  }, 30)
}
</script>
</head>
<body>
<div></div>
<div></div>
<div></div>
</body>
</html>

以上代码虽然不是div的运动,但是从div的长度变化依然可以看出缓冲效果,原理是一样的。
一.代码注释:
1.window.onload=function(){},当稳当内容完全加载完毕再去执行函数中的代码。
2.var oDiv=document.getElementsByTagName(‘div‘),获取div对象集合。
3.for(var i=0;i<oDiv.length;i++){},遍历div对象集合中的每一个div对象。
4.oDiv.timer=null,为div对象自顶一个timer属性,并赋值为null,用于存放setInterval()函数的返回值。
5.oDiv.onmouseover=function(){move(this,400);},为div对象注册onmouseover事件处理函数。
6.oDiv.onmouseout=function(){move(this,100);},为div对象注册onmouseout事件处理函数。
7.function move(div,end) {},此函数为缓冲运动的核心,具有两个参数,第一个参数是div对象,第二个是要设置的最终div长度。
8.clearInterval(div.timer),停止当前div上定时器函数的运行,如果没有这段代码,可能会造成运动加速或者运动混乱的情况。
9.div.timer=setInterval(function(){},30),使用定时器函数每隔毫秒执行一次匿名函数。
10.var speed=(end-div.offsetWidth)/5,设置运动"速度",这里所谓的速度其实就是宽度增加或者减少的幅度,随着运动的进行,speed的值也是在不断变化的。
11.speed=speed>0?Math.ceil(speed):Math.floor(speed),是一个数学运算,这里就不介绍了。
12.if(div.offsetWidth==end){clearInterval(div.timer);},如果达到目标长度,就停止定时器函数的执行。
13.div.style.width=div.offsetWidth+speed+‘px‘,否则继续不断设置div的宽度。
二.相关阅读:
1.Math.ceil()函数可以参阅javascript的Math对象的ceil()方法一章节。
2.Math.floor()函数可以参阅javascript的Math.floor()方法一章节。 
3.setInterval()函数可以参阅setInterval()函数用法详解一章节。 
4.clearInterval()函数可以参阅window对象的clearInterval()方法一章节。 
5.offsetWidth属性可以参阅scrollTop、offsetHeight和offsetTop等属性用法详解一章节。

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=10780

更多内容可以参阅:http://www.softwhy.com/javascript/

时间: 2024-10-19 17:19:07

js缓冲运动代码实例的相关文章

JS 缓冲运动 带运动的留言本 小案例

1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 2 "http://www.w3.org/TR/html4/strict.dtd"> 3 4 <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> 5 <head> 6 <meta http-equiv="Content

JS实现多物体width缓冲运动实例

多物体运动,运动参数不能公用. 这篇文章主要介绍了JS实现多物体缓冲运动实例代码,有需要的朋友可以参考一下 效果: 思路: 利用setInterval计时器进行运动,offsetWidth实现宽度的变动,在用onmouseover将终点和所选中的DIV放入参数再进行缓冲运动. 代码: 代码如下: <head runat="server"> <title></title> <style type="text/css">

js实现的运动框架代码实例

js实现的运动框架代码实例:元素的运动效果在大量的场景中都有应用,最典型的一个就是网站的客服系统,一般都会随着滚动条运动,本章节就介绍一下js的一个运动框架实例,希望能够给需要的朋友带来借鉴作用.代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwh

js图片缓冲加载代码实例

js图片缓冲加载代码实例:一般的图片展或者图片较多的网站都会使用图片缓冲加载技术,可以说对提高网站的体验度有良好的效果,下面就分享一段网络上的相关代码,希望能够给大家带来一定的帮助,代码如下: <script type="text/javascript"> var Imgvalue; var Count =13;//图片数量 var Imgs = new Array(Count); var ImgLoaded =0; //预加载图片 function preLoadImgs

js之运动框架缓冲运动

由于JS里对于数值小数点会自动去除,所以对于运动位置,需要使用Math.ceil()向上取整或者 Math.floor()向下取整进行解决 以下是我的缓冲运动练习简单代码 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

js实现缓冲运动,和匀速运动有点不相同

缓冲运动和匀速运动有点不同,看图可以知道缓冲运动速度是越来越慢的. 1 <style> 2 *{ 3 padding:0; 4 margin:10px 0; 5 } 6 #div1{ 7 height:100px; 8 width:100px; 9 background:green; 10 float:left; 11 position:relative; 12 left:1000px; 13 } 14 #div2{ 15 border-left:1px solid black; 16 pos

js实现的数字四舍五入效果代码实例

js实现的数字四舍五入效果代码实例:下面直接给出能够截取指定位数字符串,且具有四舍五入效果的代码: var num=3.1415926; console.log(num.toFixed(3)); toFixed()函数可以参阅javascript的Number对象的toFixed()方法一章节. 原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=11973 更多内容可以参阅:http://www.softwhy.com/javas

js实现的可以自动刷新的时间日期代码实例

js实现的可以自动刷新的时间日期代码实例:可以自动刷新的时间日期效果在很多网页都在使用,因为能够让页面更加动感一些,也更加人性化,用户可以实时查看页面的时间,下面就通过代码实例介绍一下如何实现此效果.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.sof

js网址跳转实例代码

js网址跳转实例代码:网址跳转是常用的功能,比如点击一个按钮实现跳转,或者说希望一条新闻打开后可以跳转到其他页面,就可以直接在编辑器中输入跳转代码.下面就简单列举一下js跳转代码,可以根据实际情况选择使用.方式一: window.location.href="http://www.softwhy.com"; 以上代码可以跳转到指定的链接.方式二: window.history.back(-1); 以上代码可以返回之前访问的页面.方式三: self.location="http