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
  • 相关阅读:
    cmp函数
    代码6
    代码5
    Google Code Jam在线測试题目--Alien Language
    Android ListView 和 ScrollView 冲突问题
    IOS的一个关于球碰撞的小游戏
    运用smali自己主动注入技术分析android应用程序行为
    《Pro Android Graphics》读书笔记之第二节
    单播、多播(组播)和广播的差别
    Swift闭包(Closure)
  • 原文地址:https://www.cnblogs.com/xuniannian/p/8192493.html
Copyright © 2011-2022 走看看