Javascript 将垂直滚动替换为水平滚动

Javascript 将垂直滚动替换为水平滚动,javascript,scroll,horizontal-scrolling,vertical-scrolling,Javascript,Scroll,Horizontal Scrolling,Vertical Scrolling,我想在Vanilla JavaScript中禁用垂直滚动并将其替换为水平滚动。当我尝试替换滚动值时,我被阻止。我相信有一个简单的解决方案 /*我们定义了我们的函数如果您只想影响鼠标滚轮事件,可以尝试使用“滚轮”事件。通过我的测试,这在Firefox和Chrome中有效。不是IE(编辑:事实上,事件确实会触发,只是我用来滚动的方法似乎不起作用,所以你可以在IE中也使用它) 然后使用event.deltaY确定滚动是否垂直并阻止它。也可以使用event.deltaY的方向来水平滚动某些方向(我乘以5

我想在Vanilla JavaScript中禁用垂直滚动并将其替换为水平滚动。当我尝试替换滚动值时,我被阻止。我相信有一个简单的解决方案


/*我们定义了我们的函数如果您只想影响鼠标滚轮事件,可以尝试使用“滚轮”事件。通过我的测试,这在Firefox和Chrome中有效。不是IE(编辑:事实上,事件确实会触发,只是我用来滚动的方法似乎不起作用,所以你可以在IE中也使用它)

然后使用
event.deltaY
确定滚动是否垂直并阻止它。也可以使用
event.deltaY
的方向来水平滚动某些方向(我乘以5,因为它看起来有点慢,但您可以将滚动量更改为w/e)

你的最新情况


/*我们定义了我们的函数嘿!感谢您的“解决方案”,但滚轮不会阻止其他滚动类型(例如箭头键),我可以添加另一个侦听器,但我认为正确的方法是使用“滚动”事件!)再次感谢。scroll事件的问题是,它只在滚动已经发生之后才会触发。因此,即使您将其固定为水平滚动,它也会看起来很僵硬,因为您必须有效地取消垂直滚动,然后水平滚动。谢谢!我不知道o实现这一点的方法是使用不同的addEventListener!如果您想隐藏垂直滚动条(防止以这种方式滚动),可以使用css
overflow-y:hiddenpreventDefault()
似乎不再工作,因为滚动事件被视为被动事件:。工作版本: