页面抖动问题:滚动条出现,页面抖动问题

滚动条出现,页面抖动问题

问题

页面左右抖动,此处究其原因就是滚动条的出现,导致页面宽度变化,从而引起页面左右抖动(实际就是宽度一直在变化,所以一直抖动)

解决方案

调整滚动条的样式
网上各种各样的方案,都不适合此处,所以注定了此处的方案和其它方案不一样(主要是因为布局不一样吧)
将scrollbar相关的样式中的宽度width调整为0px。不要直接去掉width,为什么?你试试就知道了,当然是因为没用啦,仅供参考!!!
**注:**该方案解决了页面不抖动问题,滚动功能不影响, 但是滚动条就看不见了。??

::-webkit-scrollbar {
  background: transparent;
  width: 0px;
  height: 10px
}

::-webkit-scrollbar-thumb {
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  background-color: #e1e1e1;
  width: 0px;
  height: 6px;
  border: 2px solid transparent;
  background-clip: content-box
}
`react-scrollbars-custom`是一个React库,用于自定义滚动条样式。如果你想要减少滚动页面抖动感,这通常涉及到优化滚动性能。在使用这个库,可以尝试以下几种方法: 1. **优化滚动事件处理**:避免在滚动事件回调函数中做过多的DOM操作或计算,这些都可能导致页面抖动。你可以将耗的操作放在`requestAnimationFrame`或者`useEffect`的`useCallback`钩子里,只在必要更新。 ```jsx import { useEffect } from 'react'; import { ScrollbarContext } from 'react-scrollbars-custom'; function MyComponent() { const onScroll = useCallback((event) => { // 在这里执行耗操作,使用 event.preventDefault() 阻止默认滚动 if (yourCondition) { event.preventDefault(); yourHeavyTask(); } }, [yourHeavyTask]); return ( <ScrollbarContext.Consumer> {({ scrollbars }) => ( <div {...scrollbars.props} onScroll={onScroll}> {/* Your content */} </div> )} </ScrollbarContext.Consumer> ); } ``` 2. **启用硬件加速**:React Native支持CSS属性 `-webkit-overflow-scrolling: touch;` 来利用触摸设备的GPU加速,减轻滚动性能压力。确保在你的滚动容器上应用这个样式。 3. **禁用不必要的渲染**:滚动区域外的内容不需要实渲染,可以考虑使用 `shouldComponentUpdate` 或者 `React.memo` 函数来优化组件更新策略。 4. **检查其他外部影响因素**:确保你的应用没有其他的性能瓶颈,比如网络请求、定器等,它们也可能会导致滚动抖动
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值