繁体   English   中英

甚至在放置事件中,完全禁用水平滚动

[英]Completely disable horizontal scrolling, also in drop events

我有一个HTML页面,右边带有一个滑动面板。 此面板的宽度为200px,位置:固定,其位置最初设置为右侧:-100px(clientArea之外的中途路)。 对于正文,html(css),Overflow-x设置为隐藏,并且面板接受鼠标悬停事件和放置事件。 鼠标悬停时,面板向右滑动:0。

如果在此面板上拖动可拖动元素,则面板会正确地向左滑动,但窗口会开始向右滚动,这是不希望有的行为。

我还尝试了如下所述的javascript解决方案: 使用JavaScript禁用水平滚动,但这不是一个好的解决方法,因为它会使clientArea开始闪烁。

完全禁用水平滚动的最佳方法是什么? 可能是跨浏览器解决方案。

谢谢

更新:

不是导致问题的滑动面板,而是可拖动元素的辅助对象(我正在使用jquery-ui),该对象在拖动时固定在鼠标左上方。 想象一下辅助对象为div 200x100px。 当拖动到窗口区域的最右边时,问题就会出现,将窗口向右滚动,而不是剪切助手(而不是滚动窗口)。 我通过在拖动操作期间将鼠标锚定在助手的右上角来进行管理,但是我仍然很好奇是否有任何方法可以完全禁用窗口的水平滚动。 我以为助手对象与页面流完全“分离”了(就像使用position:CSS中的absolute一样),但是显然不是。

我最终改变了我的最初要求,从而改变了页面设计。

如果不将面板放置在右侧:-100px,而是将其宽度设置为100px并放置在右侧:0px怎么办?

然后在鼠标悬停时将宽度设置为200px。 仍然感觉像一张幻灯片。 我不知道面板的内容是否允许更改宽度,但是也许您可以使面板溢出:也隐藏。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM