婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > html5小程序飛入購物車(拋物線繪制運動軌跡點)

html5小程序飛入購物車(拋物線繪制運動軌跡點)

熱門標簽:拓展地圖標注 南昌仁和怎么申請開通400電話 平涼地圖標注位置怎么弄 機器人外呼系統存在哪些能力 高德地圖標注地點糾錯 只辦理400電話 如何獲取地圖標注客戶 電話機器人黑斑馬免費 電話機器人電銷系統掙話費

前言:最近有朋友在做小程序的過程中,遇到開發過飛入購物車效果的功能的需求。針對這個情況一些網上的demo,多少會有一些不符合情景的問題(bug)存在,針對這一情況小編決定幫朋友寫一個方案來幫助解決問題。

思考如果實現 ? 超級簡單的!

無論是小程序還是h5飛入購物車無非就是 平拋 ,或者是 上拋 兩種情況,對于這兩種情況,初中就開始學習拋物線理論知識是完全可以搞定的,高中一年級物理學的自由落體運動,平拋運動就是拋物線理論的具體實現。

平拋運動

上拋運動

構建虛擬直角坐標系,拋物線繪制軌跡點

此方案的本質就是,根據購物車起點和終點,分別做為拋物線的兩點,這樣一個感念就是要以起始點作為直角坐標系(0,0)方便后續其他坐標點的運算。還有一個應該注意的是,如果是配置了上拋h偏移量 ,就要求最高點(頂點)坐標 此方案均適合 H5 ,小程序

/**
* 飛入購物車,軌跡點繪制
* @author  👽
* @param {Array} start`在這里插入代碼片`Point 起點clientX, clientY值 (必要) 
* @param {Array} endPoint   終點clientX, clientY值 (必要)
* @param {number} point     點數          (必要) 
* @param {number} h         拋物線向上高度(上拋運動)  (可選)
* @param {number} hclientX  當存在h情況下,達到最高點時候的clientX值
* @return {Array}  [ left ,top ] 值組成的數組
*/
function flycart(startPoint, endPoint, point, h = 0, hclientX) {
   /* 
   設置startPoint 為(0,0)點 , 此拋物線經過(0,0)點 ,可以推到出模型關系式 y =  ax^2 + bx 或者 y = ax^ 2
   1 當存在 h 的情況,拋物線會y軸向上偏移 h, 此時的關系式 y = ax^2 + bx
   2 當不存在h 的情況 ,拋物線startPoint為頂點, 此時關系式 y = ax^2 
   */

   /* 參數校驗 */
   function Validityparameter() {
       let isOkey = true
       Array.isArray(startPoint) && startPoint.length !== 2 && (isOkey = false)
       Array.isArray(endPoint) && endPoint.length !== 2 && (isOkey = false)
           (point.constructor !== Number) && (isOkey = false)
       return isOkey
   }

   /* 參數驗證 */
   if (!Validityparameter()) {
       return []
   }

   /* A點橫坐標 */
   const xA = 0
   /* A點縱坐標 */
   const yA = 0
   /* x軸偏移量 */
   const offsetX = startPoint[0]
   /* y軸偏移量 */
   const offsetY = startPoint[1]
   /* B點橫坐標 */
   const xB = endPoint[0] - offsetX
   /* B縱坐標 */
   const yB = endPoint[1] - offsetY

   /* 根據B點坐標和最大高度h求系數a,b 參數*/
   let b = 0
   let a = 0

   /* 計算系數 a ,b */
   function handerComputer() {
       if (h < 10) {
           a = yB / Math.pow(xB, 2)
       } else {
           /* 因為一般購物車的情況都是向下,實際上我們購物車的坐標系是反向的,所以我們這里要把h 設置成負值 */
           h = -h
           /* 一元二次求解a,b ,現在知道一點  ( xB , yB ) 另外一點 ( maxHx,h )  */
           /* 有效達到最高點時候的x坐標 */
           const effectMaHx = hclientX && Math.abs(hclientX - offsetX) > 0 && Math.abs(hclientX - offsetX) < Math.abs(xB)
           /* 如果hclientX不滿足要求,則選A , B 中點為   */
           let maxHx = effectMaHx ? (hclientX - offsetX) : (xB + xA) / 2
           /* 已知兩點 求 a , b值  根據解方程式解得 y = ax^2 + bx  */
           a = ((yB / xB) - (h / maxHx)) / (xB - maxHx)
           /* 將 a 帶入其中一個求解 b */
           b = (yB - a * Math.pow(xB, 2)) / xB
       }
   }


   /* 軌跡數組 */
   const travelList = []
   /* x 均等分 */
   const averageX = (xB - xA) / point

   /* 處理直線運動 */
   function handerLinearMotion(type) {
       if (type === 'X') {
           const averageY = (yB - yA) / point
           for (let i = 1; i <= point; i++) {
               travelList.push([offsetX, i * averageY + offsetY])
           }
       } else {
           for (let i = 1; i <= point; i++) {
               travelList.push([offsetX + i * averageX, offsetY])
           }
       }
       return travelList
   }

   /* 當 xB的絕對值小于10的情況,我們看作Y軸直線運功    */
   if (Math.abs(xB) < 10) {
       return handerLinearMotion('X')
   }
   /*當 yB的絕對值小于10的情況,我們看作x軸直線運功  */
   if (Math.abs(yB) < 10) {
       return handerLinearMotion('Y')
   }

   handerComputer()
   /* 繪制路徑 */
   for (let i = 1; i <= point; i++) {
       const currentX = averageX * i
       const currentY = Math.pow(currentX, 2) * a + b * currentX - yA
       travelList.push([currentX + offsetX, currentY + offsetY])
   }

   return travelList
}

export default flycart

效果

小程序h5飛入購物車組件?

這里可以把這個方案和組件聯系到一起,于是乎飛入購物車組件就搞定了,這里大家要記住的點

1此方案得到的是拋物線各點的left,top值,我們只需要定時改變飛入購物車的圖片的left值 ,top就可以 2可以通過計數器功能來改變縮放比,說白了就是改變圖片transform:scale值 3不要忘記給圖片加上fixed固定定位哦:smile::smile::smile: 主要demo方法(僅供參考)

 startCart(){
    /* 開啟購物車 */
    /* this.start 儲存起始點 clientY clientY  ,this.end儲存最終點 clientX clientY*/
    this.start = {}
    this.start['x'] = this.data.current['x']
    this.start['y'] = this.data.current['y']
    const travelList = flycart([ this.start['x'] , this.start['y'] ] ,[ this.end['x'] , this.end['y'] ],25,50 )
    this.startAnimate(travelList)
        },
 startAnimate(travelList) {
    let index = 0
    this.setData({
        cartHidden: false,
        bus_x: this.start['x'],
        bus_y: this.start['y']
    })
    if(travelList.length===0) return
    this.timer = setInterval( ()=> {
        index++
        const currentPoint = travelList.shift()
        this.setData({
            bus_x: currentPoint[0],
            bus_y: currentPoint[1],
            scale: 1 - index / 25
        })
        if (travelList.length === 0) {
            clearInterval(this.timer)
            this.triggerEvent('close')
        }
    }, 33)
}

這里只做了 原生小程序飛入購物車組件 ,h5大致差別不大。

git地址如下

代碼地址https://github.com/AlienZhaolin/flycart

到此這篇關于html5小程序飛入購物車(拋物線繪制運動軌跡點)的文章就介紹到這了,更多相關html5飛入購物車內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章,希望大家以后多多支持腳本之家!

標簽:西藏 永州 青島 棗莊 新疆 漯河 池州 遼源

巨人網絡通訊聲明:本文標題《html5小程序飛入購物車(拋物線繪制運動軌跡點)》,本文關鍵詞  html5,小,程序,飛入,購物車,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《html5小程序飛入購物車(拋物線繪制運動軌跡點)》相關的同類信息!
  • 本頁收集關于html5小程序飛入購物車(拋物線繪制運動軌跡點)的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    成人av综合在线| 日韩欧美国产小视频| 久草中文综合在线| 午夜a成v人精品| 亚洲成av人片一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了 | 狠狠色狠狠色综合日日91app| 男女男精品网站| 轻轻草成人在线| 麻豆国产精品官网| 久久激情五月婷婷| 国产98色在线|日韩| youjizz国产精品| 91在线视频网址| 欧美日韩在线播放三区| 91精品国产综合久久精品图片| 3d动漫精品啪啪| 2023国产精品| **网站欧美大片在线观看| 亚洲免费观看在线视频| 性做久久久久久免费观看欧美| 日本中文字幕一区二区视频| 狠狠v欧美v日韩v亚洲ⅴ| 国产精品亚洲人在线观看| 岛国一区二区在线观看| 欧美亚洲综合另类| 欧美一区二区人人喊爽| 欧美精品一区二区久久婷婷| 精品成人a区在线观看| 国产欧美日韩亚州综合| 午夜欧美一区二区三区在线播放| 免费人成黄页网站在线一区二区| 美国欧美日韩国产在线播放| 美脚の诱脚舐め脚责91| 国产精品99久| 欧美午夜精品久久久久久超碰 | 日日夜夜免费精品| 亚洲成人免费影院| 国产白丝精品91爽爽久久| 精品污污网站免费看| 久久精品一区二区三区四区| 亚洲黄色av一区| 精品在线播放午夜| 欧美日韩精品是欧美日韩精品| 欧美tickling网站挠脚心| 一区二区三区国产精品| 国产成人午夜片在线观看高清观看| 欧美日本国产一区| 中文字幕一区二区5566日韩| 韩国女主播成人在线观看| 99热这里都是精品| 国产午夜亚洲精品羞羞网站| 蜜桃一区二区三区在线| 欧洲色大大久久| 中文字幕精品综合| 国产精品影视网| 日韩三级免费观看| 五月天国产精品| 99精品国产91久久久久久| 久久精品日产第一区二区三区高清版| 亚洲国产精品久久一线不卡| 日本久久精品电影| 亚洲老司机在线| 色哟哟日韩精品| 亚洲欧美另类久久久精品| 99久久综合国产精品| 国产精品久久三区| 97久久久精品综合88久久| 国产亚洲1区2区3区| 国产iv一区二区三区| 久久精品网站免费观看| 国产a区久久久| 国产精品久久久久一区| 91啦中文在线观看| 亚洲少妇屁股交4| 成人综合在线观看| 国产亚洲福利社区一区| 国产一区二区三区免费在线观看| 欧美日韩另类国产亚洲欧美一级| 国产精品美女久久久久久久 | 国产成人亚洲综合a∨猫咪| 欧美精品久久久久久久久老牛影院 | 日韩1区2区日韩1区2区| 欧美一区二区日韩一区二区| 老司机精品视频在线| 国产亚洲成av人在线观看导航| 粉嫩久久99精品久久久久久夜 | 精品国偷自产国产一区| 六月丁香婷婷久久| 久久综合久久综合久久综合| 处破女av一区二区| 亚洲一区二区五区| 欧美一区二区三区思思人 | 中文字幕日韩av资源站| 91浏览器入口在线观看| 婷婷激情综合网| 久久综合国产精品| 91偷拍与自偷拍精品| 男人的j进女人的j一区| 中文字幕av不卡| 欧美三区在线观看| 精品一区精品二区高清| 国产精品久久久久毛片软件| 欧美久久久久中文字幕| 国产成人精品www牛牛影视| 亚洲图片欧美一区| 国产喂奶挤奶一区二区三区| 欧美性猛交xxxx黑人交| 国产又黄又大久久| 一区二区三区在线观看欧美| 精品欧美黑人一区二区三区| 91蜜桃在线免费视频| 黄网站免费久久| 亚洲成a人片在线观看中文| 久久色.com| 欧美日韩电影一区| www.亚洲激情.com| 麻豆高清免费国产一区| 亚洲精品国产一区二区精华液| 精品国产伦理网| 欧美日韩精品免费观看视频| 成人黄色小视频| 久久成人综合网| 天天影视色香欲综合网老头| 国产精品久久久久影视| 亚洲精品一区在线观看| 欧美剧情电影在线观看完整版免费励志电影| 久久91精品久久久久久秒播| 亚洲成人免费av| 亚洲日本在线a| 欧美激情在线一区二区三区| 91精品国产91久久久久久最新毛片| 99re6这里只有精品视频在线观看| 国产一区二区三区在线观看免费视频| 日韩高清在线一区| 亚洲国产精品一区二区久久恐怖片| 国产精品久久看| 国产精品福利一区二区| 国产婷婷精品av在线| 26uuu精品一区二区 | 国产成人精品aa毛片| 激情综合色综合久久综合| 日韩国产欧美三级| 日韩 欧美一区二区三区| 亚洲成av人综合在线观看| 天天射综合影视| 日日摸夜夜添夜夜添亚洲女人| 亚洲一区二区三区四区在线观看 | 欧美日韩国产一二三| 欧美综合一区二区三区| 欧美日韩一区国产| 91精品国产乱码| 日韩一区和二区| 欧美成人官网二区| 日韩你懂的在线播放| 日韩精品一区国产麻豆| 久久亚区不卡日本| 欧美国产成人在线| 亚洲视频电影在线| 亚洲主播在线播放| 免费观看在线综合色| 国产一区二区三区四区五区入口| 国产一区二区不卡| 色综合久久九月婷婷色综合| 欧美日韩高清在线播放| 日韩精品一区国产麻豆| 国产日韩欧美高清在线| 尤物av一区二区| 人妖欧美一区二区| 国产精品99久| 欧美在线|欧美| 欧美mv日韩mv| 亚洲欧洲国产日本综合| 丝袜亚洲另类欧美| 国产一区二区按摩在线观看| 一本大道久久a久久精品综合 | 国产乱妇无码大片在线观看| 成人深夜视频在线观看| 欧美日韩国产另类一区| 久久久久99精品国产片| 亚洲综合视频网| 极品瑜伽女神91| 日本伦理一区二区| 久久久久久久久久美女| 亚洲卡通动漫在线| 国产精品一区二区在线播放| 色婷婷久久综合| 欧美videos中文字幕| 亚洲最大色网站| 粉嫩嫩av羞羞动漫久久久| 欧美人牲a欧美精品| 国产日韩亚洲欧美综合| 亚洲一级在线观看| 成人国产在线观看| 欧美不卡一二三| 亚洲一区二区欧美| 成人黄页毛片网站| 久久久精品国产99久久精品芒果| 一区二区三区四区在线播放| 国产不卡视频在线观看|