js实现基础运动

Posted 小极客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js实现基础运动相关的知识,希望对你有一定的参考价值。

首先我定义3个div每个div当我鼠标放上去的时候,他的宽度就表达,如下图

首先是样式和html代码

 1 <style>
 2     div{
 3         width:100px;
 4         height:50px;
 5         background:red;
 6         margin-bottom:10px;
 7     }
 8 </style>
 9 
10 <body>
11     <div></div>
12     <div></div>
13     <div></div>
14 </body>

js代码如下,带注释

 1 <script>
 2 //重点是给每个对象加个定时器
 3     window.onload=function()
 4     {
 5         var div1= document.getElementsByTagName(\'div\');  //获取每个div
 6         
 7         for(var i=0;i<div1.length;i++)  //当移到哪个div,哪个div发生变化
 8         {
 9             div1[i].timer=null;     //首先将定时器清空以免发生其他问题
10             div1[i].onmouseover=function()
11             {   
12                 startMove(this,400);
13             };
14             div1[i].onmouseout=function()
15             {
16                  startMove(this,100);  
17             };
18         }
19     };
20     
21     function startMove(obj,iTarget)
22     {
23        clearInterval(obj.timer);
24        obj.timer=setInterval(
25         function()
26         {
27             var speed=(iTarget-obj.offsetWidth)/5;  // 定义速度
28           
29             speed=speed>0?Math.ceil(speed):Math.floor(speed);  //速度去上限的限
30             if (obj.offsetWidth==iTarget)    //如果宽度已经增加到需要的宽度。停止计时器
31             {
32                 clearInterval(obj.timer);
33             }
34             else         //不断增加宽度直到到iTarget的值
35             {
36                 obj.style.width=obj.offsetWidth+speed+\'px\';
37             }
38 
39         }
40         , 30)
41     }
42 </script>
43     

 

感觉不难,重点进入函数都得清理一下定时器

以上是关于js实现基础运动的主要内容,如果未能解决你的问题,请参考以下文章

第八节 JS运动基础

JS运动---运动基础(缓冲运动)

js实现一套代码来控制所有的运动,图片的淡入淡出,winth,height的变宽

day38—JavaScript的运动基础-匀速运动

HTML+JavaScript实现链式运动特效

JS运动基础