JS實(shí)現(xiàn)的拋物線運(yùn)動(dòng)效果示例
本文實(shí)例講述了JS實(shí)現(xiàn)的拋物線運(yùn)動(dòng)效果。分享給大家供大家參考,具體如下:
先來看看運(yùn)行效果:
具體代碼如下:
<!doctype html > <html> <head> <meta charset="utf-8"/> <title>拋物線運(yùn)動(dòng)</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); //參數(shù)2:拋物線角度,參數(shù)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);//對(duì)邊比斜邊,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> chabaoo.cn <input type="button" value="拋物線" onclick="test()"/> <div class="pwx_rect" id="rect"></div> <div class="pwx_hr"></div> </body> </html>
實(shí)現(xiàn)思路:
X方向的邊長每次遞增5,角度每次遞減1,根據(jù)這兩個(gè)已知條件,通過三角函數(shù)就可以計(jì)算出Y方向的長度是多少
從而得出每次運(yùn)動(dòng)的X和Y方向的坐標(biāo)值,達(dá)到拋物線的效果
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript運(yùn)動(dòng)效果與技巧匯總》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動(dòng)畫特效與技巧匯總》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
原生JS實(shí)現(xiàn)各種運(yùn)動(dòng)之復(fù)合運(yùn)動(dòng)
這篇文章主要為大家詳細(xì)介紹了原生JS實(shí)現(xiàn)各種運(yùn)動(dòng)之復(fù)合運(yùn)動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08深入理解JavaScript系列(10) JavaScript核心(晉級(jí)高手必讀篇)
本篇是ECMA-262-3 in detail系列的一個(gè)概述(本人后續(xù)會(huì)翻譯整理這些文章到本系列(第11-19章)。每個(gè)章節(jié)都有一個(gè)更詳細(xì)的內(nèi)容鏈接,你可以繼續(xù)讀一下每個(gè)章節(jié)對(duì)應(yīng)的詳細(xì)內(nèi)容鏈接進(jìn)行更深入的了解2012-01-01javascript框架設(shè)計(jì)讀書筆記之種子模塊
本文是司徒正美的《javascript框架設(shè)計(jì)》一書第一章種子模塊的讀書筆記,記錄了一下自認(rèn)為比較重要的東西,分享給大家2014-12-12小程序?qū)崿F(xiàn)短信登錄倒計(jì)時(shí)
這篇文章主要為大家詳細(xì)介紹了小程序?qū)崿F(xiàn)短信登錄倒計(jì)時(shí),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07070823更新的一個(gè)[消息提示框]組件 兼容ie7
070823更新的一個(gè)[消息提示框]組件 兼容ie7...2007-08-08Js 回車換行處理的辦法及replace方法應(yīng)用
當(dāng)我們在文本框里輸入文字敲下回車后,希望在提交后網(wǎng)頁也顯示是換行的效果,可往往并不能如愿以償啊,實(shí)在是憤怒啊自己寫了一個(gè)回車換行處理的函數(shù),感興趣的朋友可以了解下啊,希望本文對(duì)你有所幫助2013-01-01使用JavaScript校驗(yàn)URL的方法小結(jié)
JavaScript中如何校驗(yàn)一個(gè)URL?最近遇到幾次需要校驗(yàn)URL的,所以本文給大家整理一下幾個(gè)校驗(yàn)URL的方法,文中有詳細(xì)的代碼講解和圖文參考,具有一定的參考價(jià)值,需要的朋友可以參考下2023-12-12用js判斷是否為360瀏覽器的實(shí)現(xiàn)代碼
這篇文章主要介紹了用js判斷是否為360瀏覽器的實(shí)現(xiàn)代碼,有時(shí)候我們需要判斷是否為360瀏覽器,包括百度聯(lián)盟后臺(tái)就有這樣的提示需要的朋友可以參考下2015-01-01JS實(shí)現(xiàn)網(wǎng)頁右側(cè)帶動(dòng)畫效果的伸縮窗口代碼
這篇文章主要介紹了JS實(shí)現(xiàn)網(wǎng)頁右側(cè)帶動(dòng)畫效果的伸縮窗口代碼,通過JavaScript基于時(shí)間函數(shù)實(shí)現(xiàn)頁面元素樣式漸變效果,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10