您的位置:

JavaScript技巧之禁止页面滚动

一、禁止页面滚动是哪些场景下需要用到?

在某些场景下,我们需要禁止页面的滚动效果,比如弹出一个对话窗口或者是展示一个新的页面元素等。如果不禁止页面滚动,则可能会影响用户的体验,导致页面元素的错乱等问题。

那么禁止页面滚动的场景主要包含以下两种:

1. 在页面上展示一个新的元素,例如弹窗提示、轮播图等,为了防止用户在元素展示过程中会误操作、造成卡顿等情况发生,需要禁止页面滚动;

2. 移动端页面在滚动到某一元素时,元素的 fixed 定位可能会受到影响,出现错位等问题,为了避免这种情况的出现,需要禁止页面滚动,确保元素的正常展现。

二、如何禁止页面滚动

在JavaScript中,我们可以通过以下两种方法来禁止页面的滚动效果:

1. 阻止默认行为


window.addEventListener('touchmove', function (e) {
  e.preventDefault();
}, { passive: false });

上述代码中,我们使用addEventListener()方法为'touchmove'事件添加了一个事件监听函数,该函数中使用preventDefault()方法阻止了当前事件的默认行为,从而避免了页面滚动的情况。

2. 控制overflow


document.body.style.overflow = 'hidden'

使用上述代码可以通过控制页面的 'overflow' 属性来禁止页面的滚动效果,其中 'hidden' 表示隐藏滚动条。需要注意的是,该代码只适用于PC端,对于移动端则需要另行处理。

三、如何还原页面滚动

在完成了需要禁止页面滚动的操作后,如果需要恢复页面的滚动效果,我们可以通过以下方式实现:

1. 恢复默认行为


window.removeEventListener('touchmove', function (e) {
  e.preventDefault();
}, { passive: false });

使用addEventListener()方法添加的事件监听函数,我们可以使用removeEventListener()方法进行移除,从而实现恢复默认行为的目的。

2. 控制overflow


document.body.style.overflow = 'auto'

通过将 'overflow' 属性重新设置为 'auto',我们可以实现页面滚动的恢复。同样需要注意的是,该代码只适用于PC端,对于移动端则需要另行处理。

四、注意事项

在使用上述方法来禁止页面滚动时,我们需要格外注意以下几点:

1. 注意兼容性,尤其是在移动端;

2. 在禁止页面滚动之后,需要及时恢复页面滚动,以免对用户体验造成影响;

3. 在添加和移除监听函数时,需要向对应的方法中传递同一个具有唯一标识的函数引用。

JavaScript技巧之禁止页面滚动

2023-05-18
CSS禁止滚动的实现

2023-05-21
ios禁止侧滑js,ios如何禁止页面滑动

2022-11-23
如何禁用网页滚动?

2023-05-12
JS禁止滚动的实现方式

2023-05-18
chrome禁止js(chrome禁止自动播放视频)

本文目录一览: 1、谷歌浏览器怎么关掉JS 2、如何禁止userchrome.js的一个功能 3、chrome怎样禁用掉前端使用的js 4、怎么在chrome 浏览器61版本禁用js 谷歌浏览器怎么关

2023-12-08
web中js时间滚动(js页面滚动)

本文目录一览: 1、JS实现滚动条触底加载更多 2、java web项目中js怎么取到div中滚动条的高度? 3、js如何控制整个页面滚动条的位置 4、web自动化中页面多个滚动条时的拖动操作? 5、

2023-12-08
CSS禁止选中

2023-05-18
javascript简要笔记,JavaScript读书笔记

2022-11-17
htmljs编程笔记(html代码笔记)

本文目录一览: 1、html代码和JS代码有什么区别 2、如何在html中调用js函数 3、JavaScript学习笔记之数组基本操作示例 4、HTML5初学者笔记 5、《web前端笔记7》js字符—

2023-12-08
印象笔记记录java学习(Java成长笔记)

2022-11-12
js高级程序设计笔记14(js高级程序设计笔记14页)

本文目录一览: 1、JavaScript高级程序设计 该怎么看 2、JavaScript学习笔记之数组基本操作示例 3、JS中有关sort以及return的问题 JavaScript高级程序设计 该怎

2023-12-08
CSS禁止图片拖动

2023-05-19
JavaScript中有效的定时器——settimeout和

2023-05-18
禁止js调试,怎么禁用javascript

本文目录一览: 1、怎么禁止js文件在网页中执行 2、如何禁止“某个”页面上“某个”js的执行 3、如何禁止执行页面上的JS方法 4、如何禁止浏览器执行JAVASCRIPT脚本代码? 5、IE浏览器怎

2023-12-08
javascript一句话笔记,javascript基本语句

2022-11-16
javascript动态html页面滚动,js内容滚动

2022-11-24
JavaScript开发技巧:如何提高网页可见性和用户体验?

2023-05-18
重学java笔记,java笔记总结

2022-11-23
chrome禁止百度js(chrome禁止百度js知乎)

本文目录一览: 1、怎么在chrome 浏览器61版本禁用js 2、chrome浏览器屏蔽了js代码的执行 3、chrome怎样禁用掉前端使用的js 怎么在chrome 浏览器61版本禁用js 首先,

2023-12-08