速度动画:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>速度动画</title> <style type="text/css"> *{margin: 0px;padding: 0px} #ob{200px;height: 200px;background-color:red;position:relative;left: -200px;} #sh{50px;height:50px;background-color: green;position:absolute;left:200px;top:75px;} </style> </head> <body> <div id="ob"><span id="sh">分享</span></div> <script type="text/javascript"> window.onload=function(){ var ob=document.getElementById('ob'); var sh=document.getElementById('sh'); //无参数 /*ob.onmouseover=function(){ startMove(); } ob.onmouseout=function(){ stopMove(); }*/ //有参数 ob.onmouseover=function(){ startMove(0,10); } ob.onmouseout=function(){ stopMove(-200,10); } } //无参数 /*var timer=null; function startMove(){ var ob=document.getElementById('ob'); clearInterval(timer); timer=setInterval(function(){ if(ob.offsetLeft==0){ clearInterval(timer); }else{ ob.style.left=ob.offsetLeft+10+'px'; } },30); } function stopMove(){ var ob=document.getElementById('ob'); clearInterval(timer); timer=setInterval(function(){ if(ob.offsetLeft==-200){ clearInterval(timer); }else{ ob.style.left=ob.offsetLeft-10+'px'; } },30); }*/ //有参数 var timer=null; function startMove(tar,spe){ var ob=document.getElementById('ob'); clearInterval(timer); timer=setInterval(function(){ if(ob.offsetLeft==tar){ clearInterval(timer); }else{ ob.style.left=ob.offsetLeft+spe+'px'; } },30); } function stopMove(tar,spe){ var ob=document.getElementById('ob'); clearInterval(timer); timer=setInterval(function(){ if(ob.offsetLeft==tar){ clearInterval(timer); }else{ ob.style.left=ob.offsetLeft-spe+'px'; } },30); } </script> </body> </html>
透明度动画:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>透明度动画</title> <style type="text/css"> *{margin: 0px;padding: 0px;} #div1{ 200px;height: 200px;background-color: red;filter:alpha(opacity:30);opacity: 0.3;} </style> </head> <body> <div id="div1"> </div> <script type="text/javascript"> window.onload=function(){ var div1=document.getElementById('div1'); div1.onmouseover=function(){ startMove(100); } div1.onmouseout=function(){ Move(30); } } var timer=null; var alpha=30; function startMove(tar){ var div1=document.getElementById('div1'); clearInterval(timer); timer=setInterval(function(){ if (alpha==tar) { clearInterval(timer); }else{ alpha+=10; div1.style.filter='alpha(opacity:'+alpha+')'; div1.style.opacity=alpha/100; } },30); } function Move(tar){ var div1=document.getElementById('div1'); clearInterval(timer); timer=setInterval(function(){ if (alpha==tar) { clearInterval(timer); }else{ alpha-=10; div1.style.filter='alpha(opacity:'+alpha+')'; div1.style.opacity=alpha/100; } },30); } </script> </body> </html>
缓冲动画:在速度动画的基础上做了一些改变,加了缓冲效果,唯一要注意的就是对速度的取整问题,不懂得可以用开发工具调试一下,观察left数据的变化
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>速度动画</title> <style type="text/css"> *{margin: 0px;padding: 0px} #ob{200px;height: 200px;background-color:red;position:relative;left: -200px;} #sh{50px;height:50px;background-color: green;position:absolute;left:200px;top:75px;} </style> </head> <body> <div id="ob"><span id="sh">分享</span></div> <script type="text/javascript"> window.onload=function(){ var ob=document.getElementById('ob'); var sh=document.getElementById('sh'); ob.onmouseover=function(){ startMove(0); } ob.onmouseout=function(){ startMove(-200); } } var timer=null; function startMove(tar){ var ob=document.getElementById('ob'); clearInterval(timer); timer=setInterval(function(){ var speed=(tar-ob.offsetLeft)/30; //必须要向上或向下取整,不然会出错 speed=speed>0?Math.ceil(speed):Math.floor(speed); if(ob.offsetLeft==tar){ clearInterval(timer); }else{ ob.style.left=ob.offsetLeft+speed+'px'; } },30); } </script> </body> </html>
多物体速度动画:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>多物体动画2</title> <style type="text/css"> ul{list-style: none;} ul li{ 200px;height: 100px;background-color: blue;margin-top: 20px;} </style> </head> <body> <ul> <li></li> <li></li> <li></li> </ul> <script type="text/javascript"> window.onload=function(){ var oli=document.getElementsByTagName('li'); for(var i=0;i<oli.length;i++){ oli[i].timer=null; oli[i].onmouseover=function(){ starMove(this,400); } oli[i].onmouseout=function(){ starMove(this,200); } } } function starMove(obj,tar){ clearInterval(obj.timer); obj.timer=setInterval(function(){ var speed=(tar-obj.offsetWidth)/8; //必须要向上或向下取整,不然会出错 speed=speed>0?Math.ceil(speed):Math.floor(speed); if(obj.offsetWidth==tar){ clearInterval(obj.timer); }else{ obj.style.width=obj.offsetWidth+speed+'px'; } },30); } </script> </body> </html>
多物体透明度动画:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>多物体动画</title> <style type="text/css"> div{ 200px;height: 200px;float: left;background-color: green;margin-left: 10px;filter:alpha(opacity:30);opacity: 0.3;} </style> </head> <body> <div id="div1"></div> <div id="div2"></div> <div id="div3"></div> <div id="div4"></div> <script type="text/javascript"> window.onload=function(){ var ob=document.getElementsByTagName('div'); for(var i=0;i<ob.length;i++){ ob[i].alpha=30; ob[i].onmouseover=function(){ starMove(this,100); } ob[i].onmouseout=function(){ starMove(this,30); } } } function starMove(obj,tar){ clearInterval(obj.timer); obj.timer=setInterval(function(){ var speed=0; if(obj.alpha<tar){ speed=10; }else{ speed=-10; } if (obj.alpha==tar) { clearInterval(obj.timer); }else{ obj.alpha+=speed; obj.style.filter='alpha(opacity:'+obj.alpha+')'; obj.style.opacity=obj.alpha/100; } },30); } </script> </body> </html>
获取样式:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>多物体动画2</title> <style type="text/css"> ul{list-style: none;} ul li{ 200px;height: 100px;background-color: blue;margin-top: 20px;border:2px solid red;} </style> </head> <body> <ul> <li id="li1"></li> <li id="li2"></li> </ul> <script type="text/javascript"> window.onload=function(){ var li1=document.getElementById('li1'); var li2=document.getElementById('li2'); li1.onmouseover=function(){ starMove(this,400,'width'); } li1.onmouseout=function(){ starMove(this,200,'width'); } li2.onmouseover=function(){ starMove(this,400,'height'); } li2.onmouseout=function(){ starMove(this,100,'height'); } } function starMove(obj,tar,oh){ clearInterval(obj.timer); obj.timer=setInterval(function(){ var icur=parseInt(getStyle(obj,oh)); var speed=(tar-icur)/8; //必须要向上或向下取整,不然会出错 speed=speed>0?Math.ceil(speed):Math.floor(speed); if(icur==tar){ clearInterval(obj.timer); }else{ obj.style[oh]=icur+speed+'px'; } },30); } function getStyle(obj,att){ if(obj.currentStyle){ return obj.currentStyle[att]; }else{ return getComputedStyle(obj,false)[att]; } } </script> </body> </html>
任意属性值:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>多物体动画任意属性值</title> <style type="text/css"> ul{list-style: none;} ul li{ 200px;height: 100px;background-color: blue;margin-top: 20px;border:2px solid red;filter:alpha(opcity:30);opacity: 0.3;} </style> </head> <body> <ul> <li id="li1"></li> </ul> <script type="text/javascript"> window.onload=function(){ var li1=document.getElementById('li1'); li1.onmouseover=function(){ starMove(this,100,'opacity'); } li1.onmouseout=function(){ starMove(this,30,'opacity'); } } var alpha=30; function starMove(obj,tar,oh){ clearInterval(obj.timer); obj.timer=setInterval(function(){ var icur=0; if(oh=='opacity'){ icur=Math.round(parseFloat(getStyle(obj,oh))*100); }else{ icur=parseInt(getStyle(obj,oh)); } var speed=(tar-icur)/8; //必须要向上或向下取整,不然会出错 speed=speed>0?Math.ceil(speed):Math.floor(speed); if(icur==tar){ clearInterval(obj.timer); }else{ if(oh=='opacity'){ obj.style.filter='alpha(opacity:'+(icur+speed)+')'; obj.style.opacity=(icur+speed)/100; }else{ obj.style[oh]=icur+speed+'px'; } } },30); } function getStyle(obj,att){ if(obj.currentStyle){ return obj.currentStyle[att]; }else{ return getComputedStyle(obj,false)[att]; } } </script> </body> </html>
链式动画:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>链式动画</title> <style type="text/css"> ul{list-style: none;} ul li{ 200px;height: 100px;background-color: blue;margin-top: 20px;border:2px solid red;filter:alpha(opcity:30);opacity: 0.3;} </style> </head> <body> <ul> <li id="li1"></li> </ul> <script type="text/javascript"> window.onload=function(){ var li1=document.getElementById('li1'); li1.onmouseover=function(){ starMove(li1,400,'width',function(){ starMove(li1,400,'height',function(){ starMove(li1,100,'opacity'); }); }); } li1.onmouseout=function(){ starMove(li1,30,'opacity',function(){ starMove(li1,100,'height',function(){ starMove(li1,200,'width'); }); }); } } var alpha=30; function starMove(obj,tar,oh,fn){ clearInterval(obj.timer); obj.timer=setInterval(function(){ var icur=0; if(oh=='opacity'){ icur=Math.round(parseFloat(getStyle(obj,oh))*100); }else{ icur=parseInt(getStyle(obj,oh)); } var speed=(tar-icur)/8; //必须要向上或向下取整,不然会出错 speed=speed>0?Math.ceil(speed):Math.floor(speed); if(icur==tar){ clearInterval(obj.timer); if(fn){ fn(); } }else{ if(oh=='opacity'){ obj.style.filter='alpha(opacity:'+(icur+speed)+')'; obj.style.opacity=(icur+speed)/100; }else{ obj.style[oh]=icur+speed+'px'; } } },30); } function getStyle(obj,att){ if(obj.currentStyle){ return obj.currentStyle[att]; }else{ return getComputedStyle(obj,false)[att]; } } </script> </body> </html>
同时运动(json):var json={name:key};
eg:var json={a:100,b:20};
for(var i in json){
alert(json[i]);
}
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>同时运动</title> <style type="text/css"> ul{list-style: none;} ul li{ 200px;height: 100px;background-color: blue;margin-top: 20px;border:2px solid red;filter:alpha(opcity:30);opacity: 0.3;} </style> </head> <body> <ul> <li id="li1"></li> </ul> <script type="text/javascript"> window.onload=function(){ var li1=document.getElementById('li1'); li1.onmouseover=function(){ starMove(li1,{291,height:200,opacity:100}); } li1.onmouseout=function(){ starMove(li1,{200,height:100,opacity:30}); } } var alpha=30; function starMove(obj,json,fn){ var flag=true; clearInterval(obj.timer); obj.timer=setInterval(function(){ for(var oh in json){ var icur=0; if(oh=='opacity'){ icur=Math.round(parseFloat(getStyle(obj,oh))*100); }else{ icur=parseInt(getStyle(obj,oh)); } var speed=(json[oh]-icur)/8; //必须要向上或向下取整,不然会出错 speed=speed>0?Math.ceil(speed):Math.floor(speed); if(icur!=json[oh]){ flag=false; } if(oh=='opacity'){ obj.style.filter='alpha(opacity:'+(icur+speed)+')'; obj.style.opacity=(icur+speed)/100; }else{ obj.style[oh]=icur+speed+'px'; } if (flag==true) { clearInterval(obj.timer); if (fn) { fn(); } } } },30); } function getStyle(obj,att){ if(obj.currentStyle){ return obj.currentStyle[att]; }else{ return getComputedStyle(obj,false)[att]; } } </script> </body> </html>