jquery如何禁止手机滚动

发布时间:2021-11-18 11:07:24 作者:小新
来源:亿速云 阅读:175
# jQuery如何禁止手机滚动

在移动端网页开发中,有时需要临时禁止页面滚动(例如弹出层出现时)。使用jQuery可以快速实现这一效果,以下是几种常见方法:

## 方法一:禁用touchmove事件

```javascript
// 禁止滚动
function disableScroll() {
  $(document).on('touchmove', function(e) {
    e.preventDefault();
  });
}

// 恢复滚动
function enableScroll() {
  $(document).off('touchmove');
}

原理:通过阻止touchmove事件的默认行为来禁用触摸滚动。

方法二:CSS+JS组合方案

// 禁止滚动
function disableScroll() {
  $('html, body').css({
    'overflow': 'hidden',
    'height': '100%'
  });
}

// 恢复滚动
function enableScroll() {
  $('html, body').css({
    'overflow': 'auto',
    'height': 'auto'
  });
}

优点:同时解决了PC端和移动端的滚动问题。

方法三:动态添加禁止滚动类

.no-scroll {
  position: fixed;
  width: 100%;
  overflow: hidden;
}
// 禁止滚动
$('body').addClass('no-scroll');

// 恢复滚动
$('body').removeClass('no-scroll');

注意事项

  1. 性能影响:方法一会阻止所有touchmove事件,可能影响页面内其他需要滑动操作的组件
  2. 滚动位置:方法三会导致页面滚动位置丢失,恢复时需要手动记录位置
  3. 兼容性:iOS8以下版本可能需要特殊处理

推荐方案

对于大多数场景,推荐使用方法二:

function toggleScroll(disable) {
  $('html, body').css({
    'overflow': disable ? 'hidden' : 'auto',
    'position': disable ? 'fixed' : 'static'
  });
}

这种方法兼容性好,且不会影响页面布局,是最安全的实现方式。 “`

推荐阅读:
  1. jquery.mobile如何实现手机滚动
  2. jquery弹窗时禁止body滚动条滚动的例子

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

jquery

上一篇:jquery1.9.1中如何使用toggle方法

下一篇:vue项目中能不能引jquery

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》