在网页上,我能否劫持垂直滚动操作并使其变成水平滚动?

3

在一个网页上,我能够劫持垂直滚动操作并将其变成水平滚动吗?

请尝试忽略潜在的可用性问题。


你打算如何进行垂直滚动呢?如果内容比视口更高,那么水平滚动有什么帮助呢? - ipopa
3
请尽量忽略潜在的可用性问题。好的,幸好你加了这句话,否则我差点因为你想到这个而打你 ;) - Peter Kruithof
4个回答

2

在网页上,我能否劫持垂直滚动操作并使其变为水平滚动?

据我所知不行(除非旋转该元素-但这可能不是您想要的)。

您需要重新排列内容以使垂直滚动条消失,并强制使用水平滚动条。

是否可能将强烈取决于页面内部HTML元素的性质。


1

是的,你可以这样做。

垂直滚动设置为element.scrollTop

你可以简单地添加一个循环来捕获scrollTop的变化,将其设置回零,然后将scrollLeft设置为等于更改的位置。

更好的解决方案是覆盖onscroll事件。

window.onscroll = function(event){

 event.preventDefault() // Stops the page from scrolling vertically.


 window.scrollLeft = event.scrollTop // This is not the correct event attribute, youll have to locate it yourself.
}

1

0
你可以钩入滚动事件,检查正在滚动的平面,如果是垂直方向,则将差异设置为水平滚动,并将垂直滚动设置为其先前的值。虽然我可以想象那会非常昂贵。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接