iOS Safari – How to disable overscroll but allow scrollable divs to scroll normally?

后端 未结 14 1590
南方客
南方客 2020-11-28 17:50

I\'m working on an iPad-based web app, and need to prevent overscrolling so that it seems less like a web page. I\'m currently using this to freeze the viewport and disable

14条回答
  •  Happy的楠姐
    2020-11-28 18:18

    First prevent default actions on your entire document as usual:

    $(document).bind('touchmove', function(e){
      e.preventDefault();           
    });
    

    Then stop your class of elements from propagating to the document level. This stops it from reaching the function above and thus e.preventDefault() is not initiated:

    $('.scrollable').bind('touchmove', function(e){
      e.stopPropagation();
    });
    

    This system seems to be more natural and less intensive than calculating the class on all touch moves. Use .on() rather than .bind() for dynamically generated elements.

    Also consider these meta tags to prevent unfortunate things from happening while using your scrollable div:

    
    
    
    

提交回复
热议问题