快速監聽小程序中的(de)手勢事件(縮放、雙擊、長按、滑動、拖拽)- mina-touch ... - 新聞資訊 - 雲南小程序開發|雲南軟件開發|雲南網站建設-昆明融晨信息技術有限公司

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不(bù)管是(shì)網站,軟件還是(shì)小程序,都要(yào / yāo)直接或間接能爲(wéi / wèi)您産生價值,我們在(zài)追求其視覺表現的(de)同時(shí),更側重于(yú)功能的(de)便捷,營銷的(de)便利,運營的(de)高效,讓網站成爲(wéi / wèi)營銷工具,讓軟件能切實提升企業内部管理水平和(hé / huò)效率。優秀的(de)程序爲(wéi / wèi)後期升級提供便捷的(de)支持!

您當前位置>首頁 » 新聞資訊 » 小程序相關 >

快速監聽小程序中的(de)手勢事件(縮放、雙擊、長按、滑動、拖拽)- mina-touch ...

發表時(shí)間:2021-2-28

發布人(rén):融晨科技

浏覽次數:212

mina-touch

mina-touch,一個(gè)方便、輕量的(de) 小程序 手勢事件監聽庫。事件庫部分邏輯參考alloyFinger,在(zài)此做出(chū)聲明和(hé / huò)感謝

change log:

  1. 2019.03.10 優化監聽和(hé / huò)繪制邏輯,動畫不(bù)卡頓
  2. 2019.03.12 修複第二次之(zhī)後縮放閃爍的(de) bug,pinch 添加 singleZoom 參數
  3. 2020.12.13 更名 mina-touch
  4. 2020.12.27 上(shàng)傳 npm 庫;優化使用方式;優化 README

支持的(de)事件

  • 支持 pinch 縮放
  • 支持 rotate 旋轉
  • 支持 pressMove 拖拽
  • 支持 doubleTap 雙擊
  • 支持 swipe 滑動
  • 支持 longTap 長按
  • 支持 tap 按
  • 支持 singleTap 單擊

demo 展示

  1. demo1:監聽 pressMove 拖拽 手勢

    <
  2. demo2: 監聽 pinch 縮放 和(hé / huò) rotate 旋轉 手勢 (已優化動畫卡頓 bug)

  3. demo3: 測試監聽雙擊事件

  4. demo4: 測試監聽長按事件

使用方法

大(dà)緻可以(yǐ)分爲(wéi / wèi) 4 步:

  1. npm 安裝 mina-touch,開發工具構建 npm
  2. 引入 mina-touch
  3. onload 實例化 mina-touch
  4. wxml 綁定實例

命令行

npm install mina-touch
安裝完成後,開發工具構建 npm

*.js

import MinaTouch from 'mina-touch'; // 1. 引入mina-touch

Page({
  onLoad: function (options) {
      // 2. onload實例化mina-touch
      //會創建this.touch1指向實例對象
    new MinaTouch(this, 'touch1', {
      // 監聽事件的(de)回調:multipointStart,doubleTap,longTap,pinch,pressMove,swipe等等
      // 具體使用和(hé / huò)參數請查看github-README(底部有github地(dì / de)址
    });
  },
});
複制代碼

NOTE:

  1. 多類型事件監聽觸發 setData 時(shí),建議把數據合并,在(zài) touchMove 中一起進行 setData ,以(yǐ)減少短時(shí)内多次 setData 引起的(de)動畫延遲和(hé / huò)卡頓(參考 demo2)

*.wxml

在(zài) view 上(shàng)綁定事件并對應:

<view
  catchtouchstart="touch1.start"
  catchtouchmove="touch1.move"
  catchtouchend="touch1.end"
  catchtouchcancel="touch1.cancel"
>
</view>
<!-- 
touchstart -> 實例對象名.start
touchmove -> 實例對象名.move
touchend -> 實例對象名.end
touchcancel -> 實例對象名.cancel 
-->
複制代碼

NOTE:

  1. 如果不(bù)影響業務,建議使用 catch 捕獲事件,否則易造成監聽動畫卡頓(參考 demo2)

以(yǐ)上(shàng)簡單幾步即可使用 mina-touch 手勢庫 :blush::blush::blush:

相關案例查看更多