zoukankan      html  css  js  c++  java
  • h5禁止ios上拉回弹_通过js解决safari、微信下拉回弹和上拉空白的效果

    在ios中为了让滑动更流畅,不那么生涩,我们需要使用-webkit-overflow-scrolling属性,如下:

    -webkit-overflow-scrolling : touch;
    

      

    其工作原理是:在有这个属性的容器上,系统会创建了一个uiscrollview,应用于该元素并将之作为渲染对象,从而为我们实现体验流畅的触屏滑动。在ios上的表现结果令人十分满意,并且网页滑动和区域滑动的冲突同样解决的很好。

    但是在safari、微信等浏览器中会出现下拉回弹和上拉空白的效果。解决办法为:当滚动区滚到顶部时,手再触屏时,把把div的滚动位置向下调一点点,这样系统就会以为还没有滚到头,就会继续滑动。

    Pexelshttps://www.wode007.com/sites/73241.html 天堂图片网https://www.wode007.com/sites/73243.html

    代码如下:

    var overscroll = function(el) {
        el.addEventListener('touchstart', function() {
            var top = el.scrollTop
            ,totalScroll = el.scrollHeight
            ,currentScroll = top + el.offsetHeight;
            if(top === 0) {
                el.scrollTop = 1;
            }else if(currentScroll === totalScroll) {
                el.scrollTop = top - 1;
            }
        });
     
        el.addEventListener('touchmove', function(evt) {
        if(el.offsetHeight < el.scrollHeight)
            evt._isScroller = true;
        });
    }
            
    overscroll(document.querySelector('.scroll'));
    document.body.addEventListener('touchmove', function(evt) {
        if(!evt._isScroller) {
            evt.preventDefault();
        }
    });
    

      

     
  • 相关阅读:
    命令[46]
    命令[53]
    命令[48]
    命令[43]
    命令[52]
    命令[55]
    命令[41]
    MYSQL[02]大小写问题
    hdu 1811
    hdu 1829
  • 原文地址:https://www.cnblogs.com/ypppt/p/13330958.html
Copyright © 2011-2022 走看看