CSS overflow禁止滚动页面

博客展示了一段代码,通过$('body').css('overflow','hidden')来禁止页面滚动,涉及到CSS的overflow属性应用。
$('body').css('overflow','hidden');//禁止滚动

### 在 UniApp 中通过组件加载时禁止页面滚动 在 UniApp 中,可以通过动态添加 CSS 样式来实现禁止页面滚动的效果。以下是一个完整的解决方案,包括如何在组件加载时触发样式添加,并确保页面滚动被禁用。 #### 1. 禁止页面滚动CSS 实现 通过设置 `html` 和 `body` 的 `overflow` 属性为 `hidden`,可以有效禁用页面滚动[^3]。以下是具体的 CSS 样式代码: ```css .no-scroll { overflow: hidden; /* 禁用页面滚动 */ height: 100%; /* 确保页面高度适应屏幕 */ } ``` #### 2. 动态添加和移除样式 在组件加载时,可以通过 JavaScript 动态地为 `html` 或 `body` 添加上述类名。在组件卸载时,再移除该类名以恢复页面滚动功能。 以下是一个示例代码,展示如何在 Vue 生命周期中实现这一功能: ```javascript export default { mounted() { // 组件加载时添加禁止滚动的样式 document.body.classList.add('no-scroll'); }, beforeDestroy() { // 组件销毁时移除禁止滚动的样式 document.body.classList.remove('no-scroll'); } }; ``` #### 3. 防止触摸事件引发滚动 为了进一步确保页面不会因为触摸事件而滚动,可以在 CSS 中使用 `touch-action: none` 来禁用触摸操作引发的滚动行为[^3]: ```css .no-scroll { overflow: hidden; /* 禁用页面滚动 */ height: 100%; /* 确保页面高度适应屏幕 */ touch-action: none; /* 禁用触摸操作引发的滚动 */ } ``` #### 4. 注意事项 - 如果页面中有其他需要滚动的区域(例如 `scroll-view`),应确保这些区域的滚动不受影响。可以通过明确设置 `scroll-view` 的滚动属性来实现[^1]。 - 在某些情况下,可能需要同时禁用 `html` 和 `body` 的滚动,以确保兼容性。 #### 示例完整代码 以下是一个完整的示例,展示了如何在 UniApp 中实现组件加载时禁止页面滚动的功能: ```html <template> <view class="content"> <!-- 组件内容 --> </view> </template> <script> export default { mounted() { document.body.classList.add('no-scroll'); }, beforeDestroy() { document.body.classList.remove('no-scroll'); } }; </script> <style> .no-scroll { overflow: hidden; height: 100%; touch-action: none; } </style> ``` ###
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值