解决双滚动条

前言:

最近在公司做项目遇到了一个看起来很简单,但是就是改了很久都无法改掉的小bug,双滚动条。我试过很多种方式,但是每一种都没办法解决我的问题。

方式一

平常用的最多的方式。

html,body {
	overflow: hidden; // 都隐藏
	overflow-x: hidden; // 隐藏横向
	overflow-y: hidden; // 隐藏纵向
}

方式二

这种方式将滚动事件锁定在content类上,滚动事件不会冒泡到任何可能具有滚动属性的父元素,然后再将父元素滚动条隐藏。(就这都没能解决我的问题)

html,body {
	overflow-y: auto;
}
body::-webkit-scrollbar {
	display: none;
}
.content {
	height: 100%;
	display: flex;
	overscroll-behavior: none;
}

方式三

使用js方式禁用外层滚动条,并且隐藏外层滚动条。这样外层滚动条及看不见也无法滚动。

doucument.querySelector('body').addEventListener('DOMMouseScroll mousewheel',
function () {
	e.preventDefault()// 阻止默认时间
	e.stopPropagation()// 阻止冒泡
	return false
}, { passive: false }) // 

但是以上三种方式并没有解决我遇到的问题,我经过几天排查发现是公司写的单选框组件导致了出现双滚动条,将其删除或者是使用原生的单选框就能够避免这个问题。

总结

经过几天的挣扎这个问题勉强的到了解决,希望以上三种方式能够帮你解决双滚动条的问题,ok,本篇博客就先更新到这里。(近期有点忙,突然发现有这么久没更新了)。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想要解决在打印时 VisualBrush 中的滚动条问题,可以考虑在打印前对 ScrollViewer 进行相应的调整,使其不显示滚动条。以下是一种可能的解决方案: ```csharp private void PrepareScrollViewerForPrinting(ScrollViewer scrollViewer) { // 保存当前的滚动位置 double horizontalOffset = scrollViewer.HorizontalOffset; double verticalOffset = scrollViewer.VerticalOffset; // 隐藏滚动条 scrollViewer.HorizontalScrollBarVisibility = ScrollBarVisibility.Hidden; scrollViewer.VerticalScrollBarVisibility = ScrollBarVisibility.Hidden; // 将滚动位置重置为最左上角 scrollViewer.ScrollToHorizontalOffset(0); scrollViewer.ScrollToVerticalOffset(0); // 延迟一段时间,以确保滚动位置正常重置 await Task.Delay(100); // 进行打印操作... // 恢复滚动条和滚动位置 scrollViewer.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto; scrollViewer.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; scrollViewer.ScrollToHorizontalOffset(horizontalOffset); scrollViewer.ScrollToVerticalOffset(verticalOffset); } ``` 在准备打印之前,我们先保存当前的滚动位置(`HorizontalOffset` 和 `VerticalOffset`)。然后,将 ScrollViewer 的滚动条可见性设置为隐藏,并将滚动位置重置为最左上角。由于 ScrollViewer 更新布局可能需要一些时间,我们使用 `Task.Delay` 延迟一段时间,以确保滚动位置正常重置。 完成打印后,我们将滚动条可见性和滚动位置恢复到之前保存的状态。 你可以在调用 `PrintScrollViewer` 方法之前调用 `PrepareScrollViewerForPrinting` 方法,以确保在打印时滚动条显示,并且滚动位置也正常。请根据你的具体情况进行相应的调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值