我在Javascript中使用滚动事件监听器在滚动完成时手动定位元素。
myContainerElement.addEventListener('scroll', function (e) {
const transform = 'translate3d(' + this.scrollLeft + 'px,0,0)';
scrollMyElement(transform);
});
请注意,scrollMyElement
只是将变换添加到元素的样式中。
这适用于Firefox和Chrome,但我遇到了Safari的问题。使用滚轮/触摸板或滚动条,滚动时元素似乎落后于页面的其余部分。
我可以通过以下解决方案解决鼠标滚轮/触摸板的问题:DOM element position slow while scrolling + difference between scrollbar-scrolling and mouse/touchpad-scrolling
因此在Safari中,使用鼠标滚轮/触摸板现在效果很好,但在使用滚动条时仍然会滞后(就像上面发布的解决方案中的示例一样)。我该如何解决这个问题?!
我尝试过的事情:
-webkit-perspective: 1000;
-webkit-backface-visibility: hidden;
-webkit-transform: translate3d(0,0,0)