本文實例講述了純js模擬div層彈性運動的方法。分享給大家供大家參考。具體如下:
特性:
1. 支持各項常數自定義
2. 理論支持所有元素,只需修改style.width,你懂得
3. 已知支持浏覽器:chrome/firefox/IE7、8、9
<html> <head> <meta http-equiv=Content-Type content="text/html;charset=utf-8"> <script type="text/javascript"> var a=900;//最大距離 var b;//定時器變量 var c=-1;//下次點擊運動方向 -1負向運動 1正向運動 var d=2; //反彈常量 數值越大彈性越小 取值d>1 var e=-1; //當前運動方向 var f=a; //當前位置 var g=0; //已單向運動時間 var h; //彈性體 var i=15;//運動速度 數值越大,運動越慢 function Bounce(id){ h=document.getElementById(id); //終止未完成的運動 if(b)clearInterval(b); //重置時間 g=0; c=-1*c; //下次點擊運動方向改變 b=setInterval('move()',i); } function move(){ if(c==1){ if(e==-1){ if(f-(2*g-1)>0){ f=f-(2*g-1); g++; }else{ e=1; f=1; g++; g=parseInt(g/d); g=g%2==0?(g+1):g; if(g==3)clearInterval(b); } }else{ if(g>0){ g--; f=f+2*g-1; }else{ e=-1; g=0; } } h.style.width=f.toString()+"px"; }else{ if(e==1){ if(f+(2*g-1)<a){ f=f+(2*g-1); g++; }else{ e=-1; f=a; g++; g=parseInt(g/d); g=g%2==0?(g+1):g; if(g==1)clearInterval(b); } }else{ if(g>0){ g--; f=f-(2*g-1); }else{ e=1; g=0; } } h.style.width=f.toString()+"px"; } } </script> </head> <body> <div style="color:red;font-size:12px;text-align:center;"> <div style="text-align:left;color:green;margin:50px 300px;"> 特性:<br> * 支持各項常數自定義 <br> * 理論支持所有元素,只需修改style.width,你懂得<br> * 已知支持浏覽器:chrome/firefox/IE7、8、9 </div> </div> <input type="button" value="click me" onClick="Bounce('test');" style="text-align:center;border:1px #ccc solid;padding:5px 10px;margin:0px 200px 100px 200px;"/> <div style="width:900px;height:200px;margin:0px 200px;background-color:#e8e8e8;border:1px #ccc solid;" id="test" onClick="Bounce('test');"></div> </body> </html>
希望本文所述對大家的javascript程序設計有所幫助。