javascript - 使用垂直鼠标滚轮在 React 组件上水平滚动
问题描述
在较小的桌面窗口中,我有一个组件可以调整为水平的引导卡行。对于没有水平鼠标滚轮且不使用触摸板的用户,我希望允许用户在悬停在此特定组件上时使用垂直鼠标滚轮移动水平滚动。
这是我基于代码的原始 StackOverflow 问题: https ://stackoverflow.com/a/15343916/8387497
水平滚动辅助组件:
function horizontalScroll (event) {
const delta = Math.max(-1, Math.min(1, (event.nativeEvent.wheelDelta || -event.nativeEvent.detail)))
event.currentTarget.scrollLeft -= (delta * 10)
event.preventDefault
}
我如何在需要水平滚动的组件上实现它:
<Row className='announcements-home' onWheel={horizontalScroll} >
当我将这个horizontalScroll
辅助函数放在 React onWheel 事件中时,它会水平和垂直滚动。我想要的结果只是水平滚动。此外,Firefox 似乎根本没有响应这些更改的水平滚动。
解决方案
onWheel = (e) => {
e.preventDefault()
var container = document.getElementById('container')
var containerScrollPosition = document.getElementById('container').scrollLeft
container.scrollTo({
top: 0,
left: largeContainerScrollPosition + e.deltaY
behaviour: 'smooth' //if you want smooth scrolling
})
}
推荐阅读
- wordpress - 如何以低于所需购物车价值的价格限制 woocommerce 中的客户订单
- openshift - alertmanager/tivoli/omibus IBM openshift
- angular - 如何以角度2缓存图像路径
- php - PHP重新排序索引嵌套数组
- php - 是否可以在mysql数据库的一列中发布两个数据?
- php - Netbeans PHP 监视静态变量
- extjs - (extjs 6.0+)panel如何动态修改布局
- google-cloud-platform - 如何按实例名称获取 GCP 计费?(不是按类型),资源和计费 sku id 之间是否存在关联?
- arrays - 如何在数组中获取存储过程的输出值
- android - Appstate 不断在 Android 中的 React Native 中获得变化