javascript實現(xiàn)商城用的 購物車拋物線

需要用到的js:parabola.js

下載地址:parabola.js
壓縮版:parabola-min.js
進(jìn)入頁面直接另存為即可,就是這么簡單粗暴。也建議您拷貝到本地使用,盡量不要直接從站點外鏈地址。一旦外鏈請求超過忍受程度,會加上這么一句js代碼:document.body.insertAdjacentHTML("afterBegin", '<a href="ooxxooxxooxxooxx-huluwa.mp4">老板和秘書的激情戰(zhàn)斗720x480.mp4</a>');

Demo演示

Demo演示!

其他實物Demo:

您可以狠狠地點擊這里:商品拋物線飛到購物車效果demo

parabola.js說明

該拋物線方法名為funParabola,您可以根據(jù)自己的喜好修改,參數(shù)以及基本使用如下:
var myParabola = funParabola(element, target, options);
關(guān)于myParabola:

直接執(zhí)行funParabola方法是不會產(chǎn)生運動的。因為,實際上funParabola執(zhí)行返回的是一個對象。包含如下四個方法:

1、mark 在目標(biāo)元素以及移動元素上通過data-center自定義屬性標(biāo)記當(dāng)前的中心坐標(biāo),如-234, -345. 此方法主要用在demo中,方便測試與預(yù)覽用的。實際可能用途不大。
2、position 重新獲取元素的位置。在元素相對位置改變的時候,此方法很有用。否則會出現(xiàn)計算誤差的情況。例如,頁面布局是自適應(yīng)或者響應(yīng)式的,瀏覽器寬度變小了,兩元素之間的距離變化了,此時需要執(zhí)行下position,存儲新的坐標(biāo)位置。
3、move 觸發(fā)拋物線運動。
4、init 初始化方法。實際上就是連續(xù)調(diào)用position, mark, move3個方法。

demo點擊頁面任意位置觸發(fā)拋物線運動就是這么觸發(fā)的:
/* 元素 */
var element = document.getElementById("element"), 
    target = document.getElementById("target");
// 拋物線元素的的位置標(biāo)記
var parabola = funParabola(element, target).mark();
// 拋物線運動的觸發(fā)
document.body.onclick = function() {
    element.style.marginLeft = "0px";
    element.style.marginTop = "0px";
    parabola.init();
};
options參數(shù)說明:

element表示移動的元素,例如demo中的小球球。原生DOM節(jié)點
target表示目標(biāo)元素。例如demo中的橢圓形的大便池。原生DOM節(jié)點
options為可選參數(shù)。各個API名稱以及含義如下:
speed 表示每幀移動的像素大小,每幀(對于大部分顯示屏)大約16~17毫秒。默認(rèn)大小是166.67。也就是默認(rèn)10px/ms.
curvature 可以近似理解為拋物線的開頭大小,也就是曲率。正數(shù)表示開口向下。默認(rèn)大小是0.001. 數(shù)值越大,開頭越小,弧度越高。因為web頁面動輒大小幾百像素,因此,曲率值較小。
progress 表示拋物線運動過程中的回調(diào),支持兩個參數(shù),x, y,表示當(dāng)前的坐標(biāo),您可以根據(jù)這些坐標(biāo)值做一些特殊的處理。
complete 表示拋物線運動結(jié)束后的回調(diào)。

其他說明:

1、可選參數(shù)speed不是指x軸的位移,也不是y軸位移,而是拋物線特定坐標(biāo)的切線距離。利用切線公式:y'=2ax+b就可以計算出x軸這一幀應(yīng)該移動的距離。形成奔向目的地的運動效果。
2、funParabola方法不依賴任何JS框架。您可以大膽使用。如果您使用的是demo源代碼中的funParabola
方法。如果您想低版本IE瀏覽器也有效果,需要再調(diào)用后面這個JS: requestAnimationFrame.js, 很少量的JS代碼,主要做兼容處理的。因此,您可以可以直接拷貝出來。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,082評論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評論 19 139
  • 一 中午正午睡時,電話響了。女友陶子打來的。 陶子問我,眼看新的新的一學(xué)期又要開學(xué)了,自己的寶貝正要面臨上幼兒園,...
    幸福D蘇眉閱讀 551評論 0 4
  • 浣溪沙·煙靄織幃 煙靄織幃蔽九天, 天光破霧閱河山。 山叢微黛素波瀾。 瀾浪醉風(fēng)云瀑掛, 掛懷極目客舟盤。 盤云何...
    風(fēng)音云影閱讀 874評論 3 5
  • 知是行的主意,行是知的功夫。古代人把知和行分開說,是為了讓人們更好的理解知和行的含義,而不是讓我們把知和行分開,知...
    贇贇的政閱讀 323評論 0 4

友情鏈接更多精彩內(nèi)容