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. 在添加和移除监听函数时,需要向对应的方法中传递同一个具有唯一标识的函数引用。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/256970.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-15 12:43
下一篇 2024-12-15 12:43

相关推荐

  • 使用vscode建立UML图的实践和技巧

    本文将重点介绍在使用vscode在软件开发中如何建立UML图,并且给出操作交互和技巧的指导。 一、概述 在软件开发中,UML图是必不可少的重要工具之一。它为软件架构和各种设计模式的…

    编程 2025-04-29
  • 打包后页面空白的解决方案

    当我们在调试阶段时,我们的app可能看起来完美无缺,但当我们进行打包时,在运行app时,我们可能会遇到白屏或空白的问题。在这篇文章中,我们将探讨如何解决这种问题。 一、检查文件路径…

    编程 2025-04-29
  • 优秀周记1000字的撰写思路与技巧

    优秀周记是每个编程开发工程师记录自己工作生活的最佳方式之一。本篇文章将从周记的重要性、撰写思路、撰写技巧以及周记的示例代码等角度进行阐述。 一、周记的重要性 作为一名编程开发工程师…

    编程 2025-04-28
  • Python操作Web页面

    本文将从多个方面详细介绍Python操作Web页面的技巧、方法和注意事项。 一、安装必要的库 在Python中操作Web页面,需要用到一些第三方库。 pip install req…

    编程 2025-04-28
  • 使用JavaScript日期函数掌握时间

    在本文中,我们将深入探讨JavaScript日期函数,并且从多个视角介绍其应用方法和重要性。 一、日期的基本表示与获取 在JavaScript中,使用Date对象来表示日期和时间,…

    编程 2025-04-28
  • JavaScript中使用new Date转换为YYYYMMDD格式

    在JavaScript中,我们通常会使用Date对象来表示日期和时间。当我们需要在网站上显示日期时,很多情况下需要将Date对象转换成YYYYMMDD格式的字符串。下面我们来详细了…

    编程 2025-04-27
  • 堆叠图配色技巧分享

    堆叠图是数据可视化中常用的一种表现形式,而配色则是影响堆叠图观感和传达信息的重要因素之一。本文将分享一些堆叠图配色的技巧,帮助你创造更好的数据可视化。 一、色彩搭配原则 色彩是我们…

    编程 2025-04-27
  • 使用uring_cmd提高开发效率的技巧

    对于编程开发工程师来说,提高效率一直是致力追求的目标。本文将深度解析如何使用uring_cmd,提升工作效率。 一、常用命令 uring_cmd是一个非常强大的命令行工具,但是大部…

    编程 2025-04-27
  • 通信专业Python和Java的开发技巧

    本文旨在介绍通信专业Python和Java的开发技巧,为读者提供实用且可操作的思路和方法。 一、Python在通信领域中的应用 Python是一种优秀的程序设计语言,因其易学易用、…

    编程 2025-04-27
  • 前端引用字体的实现方法和技巧

    对于前端开发人员而言,字体關系着网站的整体美观度和用户体验。为了满足客户,开发人员经常需要引用特定的字体。在这篇文章中,我们将会详细解决前端引用字体的实现方法和技巧。 一、字体引用…

    编程 2025-04-27

发表回复

登录后才能评论