完全禁用水平滚动,也在掉落事件
Completely disable horizontal scrolling, also in drop events
我得到了一个右侧有滑动面板的html页面。这个面板是200px宽,位置:固定,它的位置最初设置为右:-100px(在clientArea的中间位置)。Overflow-x对body、html (css)设置为隐藏,面板接受鼠标悬停事件和拖放事件。鼠标悬停时,面板向右滑动:0.
如果我在这个面板上拖动一个可拖动的元素,面板会正确地向左滑动,但是窗口开始向右滚动,这是一个不希望看到的行为。
我还尝试了一个javascript解决方案,如下所述:禁用javascript水平滚动但这是一个糟糕的解决方案,因为它使clientArea开始闪烁。
完全禁用水平滚动的最好方法是什么?可能是跨浏览器的解决方案。
感谢更新:
导致问题的不是滑动面板,而是可拖动元素的helper对象(我使用jquery-ui),它在拖动时锚定在左上角的鼠标位置。假设helper对象是一个200x100px的div。当拖动到窗口区域的最右侧时,问题出现在向右滚动窗口,而不是剪切helper(而不是滚动窗口)。在拖动操作期间,我通过将鼠标锚定在助手的右上角来管理这一点,但我仍然好奇是否有任何方法可以完全禁用窗口的水平滚动。我假定helper对象完全"分离"于页面流(就像在css中使用position: absolute一样),但显然不是。
我最终改变了我最初的要求,从而改变了页面设计。
如果你不把面板放在右:-100px,但给它一个宽度100px,并把它放在右:0px呢?
然后鼠标悬停,动画宽度为200px。感觉还是像在滑。我不知道你的面板的内容是否允许改变宽度,但也许你可以给面板一个溢出:隐藏。
- 只覆盖箭头键滚动事件
- Javascript如何找到滚动事件的来源
- 谷歌地图劫持了iphone's滚动(触摸事件)-如何恢复
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- jquery/ajax无限滚动事件
- 如何检测滚动事件是否像在触摸设备上一样只触发一次
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- 为什么不'我的窗口滚动事件根本没有启动.其他答案没有解决问题
- 在滚动时,在隐藏滚动条和隐藏溢出的同时触发事件
- 如何用javascript调用函数,然后在滚动事件中调用该函数的特定实例
- 将事件列表滚动到给定月份的第一个事件
- '滚动'事件未在CompositeView中激发
- 从父元素取消绑定滚动事件并绑定到子元素
- JavaScript/jQuery未触发滚动事件
- 如何使用javascript检测不可滚动元素中的滚动事件和方向
- Javascript鼠标滚轮事件滚动
- 点击未触发溢出事件:滚动
- 将jquery事件滚动与“;在“上”;
- actionscript 3-as3中的鼠标事件滚动flash和html.有没有办法停止使用javascript
- jquery和事件滚动