Browse Source

组件上下滚动阻止优化

guohh 4 years ago
parent
commit
095d12c888
1 changed files with 5 additions and 3 deletions
  1. 5 3
      2020/short-video-ui/biz/js/common/LeftSwipe.js

+ 5 - 3
2020/short-video-ui/biz/js/common/LeftSwipe.js

28
      var that = this;
28
      var that = this;
29
      this.elWrapper = $(">ul", this.el);
29
      this.elWrapper = $(">ul", this.el);
30
      var hammer = this.hammer = new Hammer.Manager(this.el, {inputClass: Hammer.TouchMouseInput}); // 组件默认使用的PointInput有flex元素时,会奇怪的自动触发cancel事件
30
      var hammer = this.hammer = new Hammer.Manager(this.el, {inputClass: Hammer.TouchMouseInput}); // 组件默认使用的PointInput有flex元素时,会奇怪的自动触发cancel事件
31
      hammer.add(new Hammer.Pan({direction: Hammer.DIRECTION_HORIZONTAL, threshold: 5})); // 水平方向最小距离5Ft识别为平移手势
31
      hammer.add(new Hammer.Pan({direction: Hammer.DIRECTION_HORIZONTAL, threshold: 20})); // 水平方向最小距离5Ft识别为平移手势
32
      hammer.on("panstart panmove panend pancancel", Hammer.bindFn(that._onPan, this));
32
      hammer.on("panstart panmove panend pancancel", Hammer.bindFn(that._onPan, this));
33
      // console.log(hammer);
33
      // console.log(hammer);
34
      this.rightWidth = $(this.opt.rightSlt, this.el).width(); // 获取可移动总宽度
34
      this.rightWidth = $(this.opt.rightSlt, this.el).width(); // 获取可移动总宽度
41
    _onPan: function (ev) {
41
    _onPan: function (ev) {
42
      var delta = ev.deltaX;
42
      var delta = ev.deltaX;
43
      // console.log(ev);
43
      // console.log(ev);
44
      ev.preventDefault();  // 防止左右滑动处理时,出现上下滚动
44
      if (ev.srcEvent.cancelable) {
45
        ev.srcEvent.preventDefault();  // 防止左右滑动处理时,出现页面上下滚动,因为增加监听事件时未处理,好像阻止不了
46
      }
45
      ev.srcEvent.stopImmediatePropagation(); // 防止左右滑动处理时,出现上下滚动,iScroll的情况
47
      ev.srcEvent.stopImmediatePropagation(); // 防止左右滑动处理时,出现上下滚动,iScroll的情况
46
      // console.log(ev.type, ev.deltaX);
48
      // console.log(ev.type, ev.deltaX);
47
49
93
      this.touchStartHandleFun = $.proxy(this._touchHandle, this);
95
      this.touchStartHandleFun = $.proxy(this._touchHandle, this);
94
      $("body").on("touchstart", this.touchStartHandleFun);
96
      $("body").on("touchstart", this.touchStartHandleFun);
95
    },
97
    },
96
    _removeTouchStartListen(){
98
    _removeTouchStartListen() {
97
      $("body").off("touchstart", this.touchStartHandleFun);
99
      $("body").off("touchstart", this.touchStartHandleFun);
98
    },
100
    },
99
    _touchHandle(e) {
101
    _touchHandle(e) {