如何同步具有不同高度的两个元素之间的滚动

zur4ik

我有两个DIV元素#page#block

<div id="page"></div>
<div id="block"></div>

#block元素具有固定的位置,并且内部具有内容丰富的内容overflow:hidden

#page元素内部也有一些内容,但是它的高度#page将比高度更长或更短#block

我的目标是实现这两个元素之间的同步滚动。像这样的东西:

在此处输入图片说明

我需要计算的速度#block元件滚动,由于页眉和页脚元素#page#block应在相同的位置从开始并在涡管的端部。

我尝试实现此目的的方式:

  • 计算的#page元素高度
  • 计算出的#block元素含量的高度(因为块元素是固定的并且一直具有固定的高度)
  • 计算#block元素滚动速度:

    $("#block").outerHeight / $("#page").outerHeight

  • 触发.scrollTop()#block

它从一开始就起作用,并且#block元素滚动比元素滚动要快#page,但是到最后,元素滚动#block还没有完全滚动。

这是我的JsFiddle:http : //jsfiddle.net/zur4ik/bQYrf/2/

也许有人可以看到我在做什么错?

提前致谢。

母亲

您必须将window height放入案例中,并将其从元素高度中减去。

$(window).scroll(function() {
    var pageH = $('#page').height() - $(this).height();
    var pageT = this.scrollY - $('#page').offset().top;

    $('#block').scrollTop(pageT / pageH * ($('#blockLength').height() - $(this).height()));
});

这是更新的小提琴:http : //jsfiddle.net/bQYrf/4/

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何具有两个具有相同高度长度的列

CSS水平对齐两个具有不同高度的div

在gridview磁贴上的视镜中具有不同高度的两个视图

如何在JQuery中设置两个具有相同高度的div

如何对齐两个具有相同高度的div?

垂直对齐两个不同高度的右拉元素(引导程序)

如何在具有不同版本的两个master数据库之间执行同步(或复制)?

具有两列和三个卡片 ui 元素的相同高度

使用QFileSystemModel同步具有不同元素的两个视图

强制两个<li>元素具有相同的高度

如何使两个具有不同字体高度的块基线对齐?

两个不同元素的同步悬停

当两个元素的高度由其内容定义时,如何确保两个元素在所有屏幕宽度上具有相同的高度?

查看具有不同高度的物品

如何完全合并两个不同的DataFrame,它们之间具有完全不同的列

如何在具有明确端口和不同用户名的两个远程服务器之间同步文件?

如何添加 </div> 以分隔具有不同类的两个不同元素

如何同步两个QListWidgets的滚动?

如何比较两个具有多个元素的数组以查找不同的元素

如何在CSS中合并具有不同父元素的两个元素?

jQuery向滚动中的两个元素添加一个类,但具有不同的属性

具有不同高度的项目的RecyclerView:滚动条

如何获得具有不同属性比较器的两个对象数组之间的差异?

如何在R中具有不同维度的两个表之间创建比率表?

如何使用CSS将三个具有不同高度的项目显示在同一行上?

如何执行具有不同维度的两个向量的逐元素乘法

如何比较两个具有不同长度的列表并删除一些元素?

关联具有不同高度的单独元素以沿垂直中心线对齐

两个内容大小不同的 ScrollViewer 的同步滚动