Safari translate3d滞后于滚动事件

时间:2018-02-09 19:43:53

标签: javascript css scroll safari css-transforms

我在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中,使用鼠标滚轮/触摸板现在效果很好,但在使用滚动条时仍然会滞后(就像上面发布的解决方案中的示例一样)。我该如何解决这个问题?!

我尝试过的事情:

  1. -webkit-perspective: 1000; -webkit-backface-visibility: hidden;
  2. 除了表现
  3. -webkit-transform: translate3d(0,0,0)
  4. 使用所有供应商前缀转换,如webkit,moz,o,ms。

0 个答案:

没有答案