Disable overscroll in iOS Safari

前端 未结 2 1034
孤独总比滥情好
孤独总比滥情好 2021-02-06 08:03

How can I prevent overscroll in Safari iOS? I would use the touch gesture for navigate on a site but I can\'t.

I tried this:

$(window).on(\'touchstart\',         


        
相关标签:
2条回答
  • 2021-02-06 08:18

    This Should be the easiest way to accomplish this:

    $(function() {
        document.addEventListener("touchmove", function(e){ e.preventDefault(); }, false);
    });
    

    Hope this helps.

    Best.

    0 讨论(0)
  • 2021-02-06 08:31

    This way will allow scrollable elements while still preventing the overscroll in the browser itself.

    //uses document because document will be topmost level in bubbling
    $(document).on('touchmove',function(e){
      e.preventDefault();
    });
    //uses body because jquery on events are called off of the element they are
    //added to, so bubbling would not work if we used document instead.
    $('body').on('touchstart','.scrollable',function(e) {
      if (e.currentTarget.scrollTop === 0) {
        e.currentTarget.scrollTop = 1;
      } else if (e.currentTarget.scrollHeight === e.currentTarget.scrollTop + e.currentTarget.offsetHeight) {
        e.currentTarget.scrollTop -= 1;
      }
    });
    //prevents preventDefault from being called on document if it sees a scrollable div
    $('body').on('touchmove','.scrollable',function(e) {
      e.stopPropagation();
    });
    
    0 讨论(0)
提交回复
热议问题