我们都知道移动浏览器上的100vh跳转(CSS3 100vh not constant in mobile browser)
为了防止这种情况发生,我将页面可滚动内容包装在一个单独的div中,效果很好!
但我仍然需要一些固定元素。 当你现在悬停固定元素并尝试滚动时,scrolller-div不会滚动,就像正常滚动"正常滚动"。
这显然非常糟糕,不能保持这样。
如果固定元素是.scroll-wrapper
的兄弟姐妹,前辈或祖先,那似乎并不重要。据我所知,只要你悬停固定元素并滚动,浏览器就想滚动固定元素内容和滚动包装。
到目前为止我的想法:
mousewheel
DOMMouseScroll
等传递给.scroll-wrapper
路线2.并不是那么有前途,我只是找不到任何东西来制定路线1.所以......关于如何完成 3的任何想法。选项
答案 0 :(得分:1)
奇怪..当文本和CodePen完成时,我找到了一个解决方案作为建议 - How to scroll a scrollable div when scrolled on other, non-scrollable div?
解决方案3.是可能的!
关键是从固定元素上的e.deltaY
- 事件中抓取wheel
,并将其添加到.scroll-wrapper
。如果你想用jQuery做,deltaY
是"隐藏"在e.originalEvent
$(".fixed-element").on("mousewheel DOMMouseScroll wheel MozMousePixelScroll", function(e) {
e.preventDefault();
$(".scroll-wrapper")[0].scrollTop += e.originalEvent.deltaY;
})