這篇文章主要介紹了純js模擬div層彈性運(yùn)動(dòng)的方法,涉及javascript操作div層實(shí)現(xiàn)運(yùn)動(dòng)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
本文實(shí)例講述了純js模擬div層彈性運(yùn)動(dòng)的方法。分享給大家供大家參考。具體如下:
特性:
1. 支持各項(xiàng)常數(shù)自定義
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;//定時(shí)器變量
- var c=-1;//下次點(diǎn)擊運(yùn)動(dòng)方向 -1負(fù)向運(yùn)動(dòng) 1正向運(yùn)動(dòng)
- var d=2; //反彈常量 數(shù)值越大彈性越小 取值d>1
- var e=-1; //當(dāng)前運(yùn)動(dòng)方向
- var f=a; //當(dāng)前位置
- var g=0; //已單向運(yùn)動(dòng)時(shí)間
- var h; //彈性體
- var i=15;//運(yùn)動(dòng)速度 數(shù)值越大,運(yùn)動(dòng)越慢
- function Bounce(id){
- h=document.getElementById(id);
- //終止未完成的運(yùn)動(dòng)
- if(b)clearInterval(b);
- //重置時(shí)間
- g=0;
- c=-1*c; //下次點(diǎn)擊運(yùn)動(dòng)方向改變
- 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> * 支持各項(xiàng)常數(shù)自定義 <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>
希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選