• 微信浏览器禁止页面下拉查看网址(不影响页面内部scroll)


    此类事件是手机touchmove默认事件行为,可以通过js代码隐藏事件:

    (‘body’).on(‘touchmove’, function (event) {event.preventDefault();});
    or
    document.addEventListener('touchmove', function(e){e.preventDefault()}, false);

    但这样往往会把页面原生的scroll效果也一同去掉了(如果页面没有内嵌scroll,可以直接用此解决方案),下面的代码可以不是十分完美的解决这个问题:

    var overscroll = function(el) {
      el.addEventListener('touchstart', function() {
        var top = el.scrollTop
          , totalScroll = el.scrollHeight
          , currentScroll = top + el.offsetHeight;
        //If we're at the top or the bottom of the containers
        //scroll, push up or down one pixel.
        //
        //this prevents the scroll from "passing through" to
        //the body.
        if(top === 0) {
          el.scrollTop = 1;
        } else if(currentScroll === totalScroll) {
          el.scrollTop = top - 1;
        }
      });
      el.addEventListener('touchmove', function(evt) {
        //if the content is actually scrollable, i.e. the content is long enough
        //that scrolling can occur
        if(el.offsetHeight < el.scrollHeight)
          evt._isScroller = true;
      });
    }
    overscroll(document.querySelector('.scroll'));
    document.body.addEventListener('touchmove', function(evt) {
      //In this case, the default behavior is scrolling the body, which
      //would result in an overflow.  Since we don't want that, we preventDefault.
      if(!evt._isScroller) {
        evt.preventDefault();
      }
    });

    要给需要下拉的box添加一个class="scroll"就可以了

    此方法对安卓的下拉不起效 但是不影响使用 主要为了解决苹果端页面上下拉之后导致页面内部scroll划不动的现象

    转载自:http://www.jianshu.com/p/2eddee561971

  • 相关阅读:
    RAID中条带的概念
    关于几个与IO相关的重要概念
    分布式调度
    ajax
    choices参数
    1.Python实现字符串反转的几种方法
    django web框架
    CRM总结
    Python面试重点(web篇)
    day02-网编并发数据库
  • 原文地址:https://www.cnblogs.com/rommel0618/p/6840684.html
Copyright © 2020-2023  润新知