zoukankan      html  css  js  c++  java
  • 微信浏览器禁止页面下拉查看网址(不影响页面内部scroll)

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

    $(‘body’).on(‘touchmove’, function (event) {event.preventDefault();});
    or
    document.addEventListener('touchmove', function(e){e.preventDefault()}, false);
    但这样往往会把页面原生的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();
       }
    });
    详情见:https://github.com/luster-io/prevent-overscroll/blob/master/index.html
  • 相关阅读:
    C++第三章习题
    C++第五章习题
    C++第八章习题
    C++第四章习题
    第八章 图形编程 笔记
    第五章 Windows程序设计 笔记
    [转]c++ 结构体和类的区别
    C++第二章习题
    C++第六章习题
    Ubuntu10.04中设置和修改root密码
  • 原文地址:https://www.cnblogs.com/xuniannian/p/8192493.html
Copyright © 2011-2022 走看看