将滚动条div同步到非滚动div

gh

我有一个包含三个div同步的网页。

    +----------+
    |   TOP    |
+---+----------+
|   |         ||
| L | CENTER  ||
|   |_________||
+---+----------+

<!--Rough HTML-->
<div>
  <div class="topbar-wrapper">
    <div class="topbar"></div>
  </div>
  <div class="container">
    <div class="sidebar-wrapper">
      <div class="sidebar"></div>
    </div>
    <div class="center-wrapper"> <!-- Set to the window size & overflow:scroll -->
      <div class="center"></div> <!-- Has the content -->
    </div>
  </div>
</div>

中心div具有水平和垂直滚动条。顶部和左侧div没有滚动条。相反,当水平滚动条移动时,滚动事件会margin-left适当地更新顶部div 同样,当垂直滚动条移动时,margin-top也会更新。在两种情况下,它们都设置为负值。

$('.center-wrapper').scroll(function(e) {
  $('.sidebar').css({marginTop: -1 * $(this).scrollTop()});
  $('.topbar').css({marginLeft: -1 * $(this).scrollLeft()});
});

在Chrome和Firefox中可以正常运行。但是在Safari中,在移动滚动条和正确设置负边距之间存在延迟。

有一个更好的方法吗?还是有什么方法可以消除Safari中的滞后?

编辑:

查看此小提琴以查看Safari中的滞后:http : //jsfiddle.net/qh2K3/

詹湛

让我知道这个JSFiddle是否更好用。我也经历了同样的“滞后”(在OS X上为Safari 7),这些小的CSS更改大大改善了它。我最大的猜测是Safari懒惰并且没有打开其高性能马达。我们可以使用一些简单的CSS强制Safari打开它:

.topbar-wrapper, .sidebar-wrapper, .center-wrapper {
    -webkit-transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    -webkit-perspective: 1000;
}

通过将一些工作转移到GPU,可以在Safari中启用硬件加速的CSS它可以改善浏览器中的渲染,这可能是延迟中的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将div的水平滚动条固定到页面底部

来自分类Dev

隐藏DIV的滚动条

来自分类Dev

Div水平滚动条

来自分类Dev

滚动DIV元素的特定滚动条

来自分类Dev

将滚动条放置到div并将获取的数据放入其中

来自分类Dev

CSS将垂直滚动条显示为div

来自分类Dev

使用滚动条将HTML div调整到屏幕

来自分类Dev

使用滚动条将HTML div调整到屏幕

来自分类Dev

固定全屏div滚动条

来自分类Dev

挣扎与DIV的水平滚动条

来自分类Dev

考虑滚动条调整<div>宽度

来自分类Dev

不引起滚动条的全角div

来自分类Dev

滚动条对父div事件的反应

来自分类Dev

防止div扩展滚动条

来自分类Dev

检测div滚动条到达顶部

来自分类Dev

固定全屏div滚动条

来自分类Dev

滚动条对父div事件的反应

来自分类Dev

让 div 使用滚动条而不是变大

来自分类Dev

全屏 div 显示滚动条

来自分类Dev

通过按钮可滚动的Div,没有滚动条

来自分类Dev

jQuery检测div滚动条滚动到顶部

来自分类Dev

隐藏嵌套div的滚动条,但仍使其可滚动

来自分类Dev

关闭活动div后滚动条不滚动

来自分类Dev

如何隐藏溢出:在居中的div中滚动滚动条

来自分类Dev

将滚动条添加到div而不是滚动整个页面

来自分类Dev

如何在JavaScript / jQuery中同步两个不同div的滚动条?

来自分类Dev

如何在 Angular 中单击按钮时将嵌套滚动条向下滚动到嵌套滚动 div 的底部

来自分类Dev

在固定div中使用滚动条移动div

来自分类Dev

固定的Div与静态div的滚动条重叠