使用uniapp中的scroll-view组件强制隐藏滚动条

根据uni官方给的文档显示,scroll-view的隐藏属性show-scrollbar为false,在开发中真机链条时没有发现滚动条,小程序发布后,别人手机上显示滚动条。

发现问题为:ios显示未发现滚动条,Android系列会显示滚动条,且将scroll-view的show-scrollbar改为false时,依旧解决不了该问题

在查询资料后,总结出该问题的解决方案

    /deep/ ::-webkit-scrollbar {
	//隐藏scroll-view里面自带的滚动条
	display: block; //必加
	width: 0 !important;
	height: 0 !important;
	-webkit-appearance: auto!important;
	background:transparent;
	overflow: auto!important;
	}

设置后滚动条就不见了

UniApp + Vue3 + Vite + TypeScript + TailwindCSS 的项目中,如果你对某个页面设置了 `overflow: hidden` 却仍然可以滚动,可能是以下几个原因导致的: ### 可能的原因及解决办法 #### 1. **未正确应用样式** - 确保你在正确的容器上应用了 `overflow: hidden` 样式。通常需要检查的是根元素 `.page` 或者 `<view>` 容器。 ```html <template> <view class="container"> <!-- 页面内容 --> </view> </template> <style lang="scss" scoped> .container { overflow: hidden; height: 100vh; // 确保高度设置为视口高度 } </style> ``` #### 2. **子组件影响全局滚动** 如果某些子组件或者嵌套的内容有独立滚动条,则可能会忽略外部的 `overflow: hidden` 设置。 解决方案:递归检查所有子节点是否也有滚动属性。 #### 3. **Tailwind CSS 冲突** 使用 TailwindCSS 时,可能存在类名覆盖的情况。例如其他地方定义了 `scroll-auto`、`overflow-scroll` 类等。 解决方法: - 强制指定重要性:`!important` ```css .no-scroll { overflow: hidden !important; } ``` - 检查是否有冲突类,并移除多余的滚动设置。 #### 4. **硬件加速引起的滚动问题** H5 中部分浏览器会因为硬件加速而保留滚动能力,即使你已经禁用了溢出隐藏。可以用 JavaScript 手动控制文档滚动状态: ```javascript onMounted(() => { document.body.style.overflow = 'hidden'; }); onUnmounted(() => { document.body.style.overflow = ''; }); ``` --- ### 示例完整代码片段 ```vue <template> <view class="fixed-page"> <!-- 页面内容 --> </view> </template> <script setup lang="ts"> import { onMounted, onUnmounted } from "vue"; onMounted(() => { document.body.style.overflow = "hidden"; // 阻止整个 body 元素滚动 }); onUnmounted(() => { document.body.style.overflow = ""; // 还原默认行为 }); </script> <style lang="scss"> .fixed-page { overflow: hidden; /* 屏蔽局部滚动 */ height: 100vh; /* 固定高度到屏幕大小 */ } </style> ``` --- ### 总结 如果单纯通过 `overflow: hidden` 来阻止页面滚动无效的话,可以尝试结合 JavaScript 动态修改 DOM 样式以及审查是否存在样式的优先级冲突。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值