• 微信浏览器禁止页面下拉查看网址(不影响页面内部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
  • 相关阅读:
    16 Errors and Exceptions
    13 Asynchronous Programming
    wpf入门
    iframe cross domain
    ini_set("error_log",$error_path)设置
    MySQL中merge表存储引擎用法
    php中静态属性静态方法的用法
    PHP的SESSIONID生成原理
    composer的基本 使用
    相邻省份数组
  • 原文地址:https://www.cnblogs.com/xuniannian/p/8192493.html
Copyright © 2020-2023  润新知