阻止iOS中页面弹性回滚,只允许div.phone_body的区块有弹性

Posted 阳光总在风雨后

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阻止iOS中页面弹性回滚,只允许div.phone_body的区块有弹性相关的知识,希望对你有一定的参考价值。

使用说明:只要替换选择器:var selector = ‘.phone_body‘;

/**
     * 阻止ios中页面弹性回滚,只允许div.scroller的区块有弹性
     */
(function () {

    var selector = ‘.phone_body‘;
    var u = navigator.userAgent;

    if (u.indexOf(‘android‘) > -1 || u.indexOf(‘Linux‘) > -1) {//安卓手机
        //alert("安卓手机");
    } else if (u.indexOf(‘iPhone‘) > -1) {//苹果手机
        //alert("苹果手机");
        //window.addEventListener("touchmove", handlePageBounce, false);
        //window.addEventListener("touchstart", handlePageBounce, false);
    } else if (u.indexOf(‘Windows Phone‘) > -1) {//winphone手机
        //alert("winphone手机");
    }


    //if ($.os.ios) {
    //    window.addEventListener("touchmove", handlePageBounce, false);
    //    window.addEventListener("touchstart", handlePageBounce, false);
    //}
    function handlePageBounce(evt) {
        if (evt.type === "touchstart") {
            this._startTouchY = evt.touches[0].screenY;
            return;
        }
        var panel = $(evt.target).closest(selector);
        if (panel.length === 0) return evt.preventDefault();
        var el = panel.get(0);
        var canScroll = el.scrollHeight > el.clientHeight;
        var hasTouchOverflow = $(el).computedStyle("-webkit-overflow-scrolling") === "touch";
        var hasOverflow = $(el).computedStyle("overflowY") !== "hidden";
        var height = parseInt($(el).computedStyle("height"), 10);
        if (canScroll && hasTouchOverflow && hasOverflow) {
            var currY = evt.touches[0].screenY;
            var scrollAtTop = ((this._startTouchY <= currY) && (el.scrollTop === 0));
            var scrollAtBottom = ((this._startTouchY >= currY) && ((el.scrollHeight - el.scrollTop) === height));
            if (scrollAtTop || scrollAtBottom)
                evt.preventDefault();
        } else {
            evt.preventDefault();
        }
    }
})();

  

 

以上是关于阻止iOS中页面弹性回滚,只允许div.phone_body的区块有弹性的主要内容,如果未能解决你的问题,请参考以下文章

弹性 beanstalk .htaccess 文件不允许指定 IP 通过

弹性IP AWS EC2阻止Web抓取

禁止body滚动允许div滚动防微信露底

Facebook:iOS 应用程序中出现“无法点赞 URL,因为它已被阻止”错误

如何阻止对网站的root访问权限,只允许带有路径的请求

适用于 iOS 的 Chrome:Cookie 的“始终允许”