您好,登錄后才能下訂單哦!
本文實例講述了JS實現的拋物線運動效果。分享給大家供大家參考,具體如下:
先來看看運行效果:
具體代碼如下:
<!doctype html > <html> <head> <meta charset="utf-8"/> <title>拋物線運動</title> <style> .pwx_rect{position:absolute;left:10px;top:300px;background-color:#888;height:50px;width:50px;} .pwx_hr{border-top:2px solid #ddd;position:absolute;width:98%;left:0px;top:350px;} </style> <script> test = function(){ var rect = document.getElementById("rect"); pwx(rect,60,5); //參數2:拋物線角度,參數3:橫向速度每次增加5 } function pwx(rect,radian,step){ var animate = function(opt){ var cos = Math.cos(opt.radian*Math.PI/180);//鄰邊比斜邊,60度的話等于1/2 var sin = Math.sin(opt.radian*Math.PI/180);//對邊比斜邊,30度的話等于1/2 var left = opt.rect.offsetLeft; var top = opt.rect.offsetTop; if(opt.radian>0){ left+=opt.step; opt.radian-=1; //角度遞減1 var a = left - opt.initLeft; var c = (a/cos); var b = (sin*c); opt.rect.style.left = opt.initLeft+a+"px"; opt.rect.style.top = opt.initTop-b+"px"; setTimeout(function(){ animate(opt); },10); }else{ opt.rect.style.left = left+opt.step+"px"; opt.rect.style.top = opt.initTop+"px"; } } animate({ step : step, rect : rect, radian : radian, initTop : rect.offsetTop, initLeft : rect.offsetLeft }); } </script> </head> <body> www.jb51.net <input type="button" value="拋物線" onclick="test()"/> <div class="pwx_rect" id="rect"></div> <div class="pwx_hr"></div> </body> </html>
實現思路:
X方向的邊長每次遞增5,角度每次遞減1,根據這兩個已知條件,通過三角函數就可以計算出Y方向的長度是多少
從而得出每次運動的X和Y方向的坐標值,達到拋物線的效果
更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript運動效果與技巧匯總》、《JavaScript切換特效與技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》
希望本文所述對大家JavaScript程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。