ウィーチャットウィジェットの自作ジェスチャーライブラリ


WxTouchEvent微信小プログラムジェスチャーイベントライブラリ
WeChatウィジェットはtap,longtap,touchstart,touchmove,touchcancel,touchend時間しかサポートできないため,比較的複雑なイベントに対しては自分でしか実現できないため,alloyFingerライブラリを自分で改造し,開発したときにWeChatウィジェットジェスチャーイベントライブラリWxTouchEventをES 6で作成し,ジェスチャーライブラリは以下のイベントをサポートした.
  • touchStart
  • touchMove
  • touchEnd
  • touchCancel
  • multipointStart
  • multipointEnd
  • tap
  • doubleTap
  • longTap
  • singleTap
  • rotate
  • pinch
  • pressMove
  • swipe

  • git倉庫住所:私を注文
    使用
    微信ウィジェットと強くバインドされているため、要素の上にすべてのイベントをバインドする必要があり、書くのが面倒なので、オリジナルサポートの使用に対してオリジナルで解決することをお勧めします.pinch、rotate、swipeなどの特殊なイベントが必要な場合にのみ、このイベントライブラリを使用して実現します.npm i wx-touch-event --saveをインストールするか、gitライブラリcheckoutから直接出ます.
    バインド方法
    *.wxml wxmlの中で傍受時間を必要とする要素に対してtouchstart、touchmove、touchend、touchcancelの4つの事件のページの本を縛って書きます
        
            
        

    *.js jsの論理層ではWxTouchEventをインスタンス化する必要があり、例にはstart、move、end、cancel\*.wxmlにバインドされたbindtouchstart,bindtouchmove,bindtouchend,bindtouchcancelに対応し、イベントのコールバック関数を一つ一つ対応させる必要がある.
    import WxTouchEvent from "wx-touch-event";
    
    let infoListTouchEvent = new WxTouchEvent();//  Page      ,        Page       
    Page({
        onLoad: function() {
            this.infoListTouchEvent = infoListTouchEvent;
            this.infoListTouchEvent.bind({//        
                swipe: function(e) {
                    console.log(e);
                },
                doubleTap: function(e) {
                    console.log(e);
                },
                tap: function(e) {
                    console.log(e);
                }.bind(this),
                longTap: function(e) {
                    console.log(e);
                },
                rotate: function(e) {
                    console.log(e)
                }.bind(this),
                pinch: function(e) {
                    console.log(e);
                }
    
            })
        },
        touchStart: infoListTouchEvent.start.bind(infoListTouchEvent),
        touchMove: infoListTouchEvent.move.bind(infoListTouchEvent),
        touchEnd: infoListTouchEvent.end.bind(infoListTouchEvent),
        touchCancel: infoListTouchEvent.cancel.bind(infoListTouchEvent),
    
    });