微信浏览器禁止页面下拉查看网址

微信中打开H5页面,禁止下拉出现黑块,但是又不能影响页面中的内容点击或者滚动

<body>
  <div id="app"></div>
  <script type="module" src="/src/main.js"></script>
</body>
/**
 * 防止滚动穿透的函数
 * @param {HTMLElement} el - 需要防止滚动穿透的元素
 */
var overscroll = function (el) {
    // 监听 touchstart 事件
    el.addEventListener('touchstart', function () {
        var top = el.scrollTop; // 当前滚动位置
        var totalScroll = el.scrollHeight; // 可滚动内容的总高度
        var currentScroll = top + el.offsetHeight; // 当前滚动位置加上容器高度

        // 如果滚动到顶部或底部,调整滚动位置以防止滚动穿透
        if (top === 0) {
            el.scrollTop = 1; // 向下滚动1像素
        } else if (currentScroll === totalScroll) {
            el.scrollTop = top - 1; // 向上滚动1像素
        }
    });

    // 监听 touchmove 事件
    el.addEventListener('touchmove', function (evt) {
        // 如果内容可以滚动(即内容高度大于容器高度),标记事件
        if (el.offsetHeight < el.scrollHeight) {
            evt._isScroller = true;
        }
    });
};

// 对指定的元素应用 overscroll 函数
overscroll(document.querySelector('#app'));

// 监听 body 的 touchmove 事件
document.body.addEventListener('touchmove', function (evt) {
    // 如果事件没有被标记为可滚动,阻止默认行为以防止滚动穿透
    if (!evt._isScroller) {
        evt.preventDefault();
    }
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值