<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        JS拋物線動畫實例制作

        來源:懂視網 責編:小采 時間:2020-11-27 22:18:45
        文檔

        JS拋物線動畫實例制作

        JS拋物線動畫實例制作:在做無人便利小程序的項目中,某一天產品說要像某產商產品學習,給添加購物車增加拋物線小球動畫。好吧,產品你最大,做! 先給大家看下效果圖 分析 這種不固定起始位置的動畫,自然不能用 gif 圖,所以只能用原生代碼實現 那我們有什么工具來實現動畫呢?
        推薦度:
        導讀JS拋物線動畫實例制作:在做無人便利小程序的項目中,某一天產品說要像某產商產品學習,給添加購物車增加拋物線小球動畫。好吧,產品你最大,做! 先給大家看下效果圖 分析 這種不固定起始位置的動畫,自然不能用 gif 圖,所以只能用原生代碼實現 那我們有什么工具來實現動畫呢?

        在做無人便利小程序的項目中,某一天產品說要像某產商產品學習,給添加購物車增加拋物線小球動畫。好吧,產品你最大,做!

        先給大家看下效果圖

        分析

        這種不固定起始位置的動畫,自然不能用 gif 圖,所以只能用原生代碼實現

        那我們有什么工具來實現動畫呢?

        小程序提供了 JS API createAnimation 來創建動畫

        CSS animation

        工具有了,我們再看一下什么是拋物線。

        這里我們只討論水平拋物線,水平拋物線從數學原理上來說就是【水平勻速、垂直加速的運動】,轉換成代碼層面就是在動畫效果 timingFunction 中,水平動畫采用 linear ,垂直動畫采用 ease-in

        所以我們需要把這個拋物線動畫分解成 兩個 同時 進行但 不同動畫效果 的動畫。

        實現

        小程序的實現

        JS:

        cartAnimation(x, y) { // x y 為手指點擊的坐標,即球的起始坐標
         let self = this,
         cartY = app.globalData.winHeight - 50, // 結束位置(購物車圖片)縱坐標
         cartX = 50, // 結束位置(購物車圖片)的橫坐標
         animationX = flyX(cartX, x), // 創建球的橫向動畫
         animationY = flyY(cartY, y), // 創建球的縱向動畫
         this.setData({
         ballX: x,
         ballY: y,
         showBall: true
         })
         setTimeoutES6(100).then(() => { // 100 秒延時,確保球已經到位并顯示
         self.setData({
         animationX: animationX.export(),
         animationY: animationY.export(),
         })
         return setTimeoutES6(400) // 400 是球的拋物線動畫時長
         }).then(() => { // 400 秒延時后隱藏球
         this.setData({
         showBall: false,
         })
         })
        }
        
        function setTimeoutES6(sec) { // Promise 化 setTimeout
         return new Promise((resolve, reject) => {
         setTimeout(() => {resolve()}, sec)
         })
        }
        
        function flyX(cartX, oriX) { // 水平動畫
         let animation = wx.createAnimation({
         duration: 400,
         timingFunction: 'linear',
         })
         animation.left(cartX).step()
         return animation
        }
        
        function flyY(cartY, oriY) { // 垂直動畫
         let animation = wx.createAnimation({
         duration: 400,
         timingFunction: 'ease-in',
         })
         animation.top(cartY).step()
         return animation
        }

        HTML:

        <view animation="{{animationY}}" style="position:fixed;top:{{ballY}}px;" hidden="{{!showBall}}">
         <view class="ball" animation="{{animationX}}" style="position:fixed;left:{{ballX}}px;"></view>
        </view>

        據我所知,用 transform: transtate() 來實現的動畫會比 top & left 性能更優,但嘗試下來發現并不能做到理想的交互效果,期待后續繼續研究吧

        H5 的實現

        // todo

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JS拋物線動畫實例制作

        JS拋物線動畫實例制作:在做無人便利小程序的項目中,某一天產品說要像某產商產品學習,給添加購物車增加拋物線小球動畫。好吧,產品你最大,做! 先給大家看下效果圖 分析 這種不固定起始位置的動畫,自然不能用 gif 圖,所以只能用原生代碼實現 那我們有什么工具來實現動畫呢?
        推薦度:
        標簽: 動畫 js 示例
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 无码国产精品一区二区免费16| 国产成人久久精品亚洲小说| 无码国产精品一区二区免费vr| 亚洲中文字幕在线第六区| 美女视频黄频a免费观看| 免费午夜爽爽爽WWW视频十八禁| 韩国亚洲伊人久久综合影院| 好男人视频在线观看免费看片 | 久久精品国产亚洲5555| 在线观看亚洲免费视频| 国产成人免费全部网站| 成年免费大片黄在线观看com| 亚洲日本韩国在线| 免费观看一区二区三区| 亚洲视频在线免费观看| 午夜性色一区二区三区免费不卡视频 | 97国产免费全部免费观看| 亚洲av无码片在线观看| 成人免费在线观看网站| 日本特黄特色AAA大片免费| 亚洲精品无码久久千人斩| 久久这里只精品99re免费| 亚洲美女视频一区| 精品国产免费一区二区| 好猛好深好爽好硬免费视频| 亚洲AV电影院在线观看| 毛片免费vip会员在线看| 日日摸夜夜添夜夜免费视频| 久久久久亚洲av无码尤物| 无码一区二区三区AV免费| 在线播放免费人成视频网站| 亚洲色欲或者高潮影院| 国产高清免费的视频| a级片免费观看视频| 亚洲熟女乱色一区二区三区| 国产精品亚洲成在人线| 久久不见久久见免费影院| 国产黄在线观看免费观看不卡| 亚洲国产成人久久| 亚洲精品乱码久久久久久不卡| 91免费在线播放|