Javascript scrollTop值不为';t与实际像素相关

Javascript scrollTop值不为';t与实际像素相关,javascript,Javascript,我对JavaScript中的scrollTop属性有问题,希望有人能帮助我。根据MDN,该值对应于像素偏移,这是有意义的。我遇到的问题是,事情似乎没有那么简单。下面是一个代码笔示例: 我想创建一个收缩页眉效果,其中页眉在滚动时收缩到某个点,然后停止。听起来很简单(应该是)。我正在收听我的scrollable元素上的“scroll”事件,并从最大页眉高度中减去该值,使用一些条件确保它保持在我想要的数量之间。我没有在差分函数上使用任何类型的标量乘法器,因此,在我看来,在可滚动区域和标题之间不应该出现

我对JavaScript中的
scrollTop
属性有问题,希望有人能帮助我。根据MDN,该值对应于像素偏移,这是有意义的。我遇到的问题是,事情似乎没有那么简单。下面是一个代码笔示例:

我想创建一个收缩页眉效果,其中页眉在滚动时收缩到某个点,然后停止。听起来很简单(应该是)。我正在收听我的scrollable元素上的“scroll”事件,并从最大页眉高度中减去该值,使用一些条件确保它保持在我想要的数量之间。我没有在差分函数上使用任何类型的标量乘法器,因此,在我看来,在可滚动区域和标题之间不应该出现视差滚动效果(尽管在我的示例中,显然存在)。有什么想法吗

编辑: 为了更好地澄清这个问题,我希望页眉以与文本滚动相同的速度收缩,以便在页眉达到其最小高度之前,文本不会位于页眉后面。现在的情况是,内容框的垂直平移有效地导致文本移动速度是其scrollTop值的两倍,因为它同时进行滚动和平移。

如果通过“视差滚动效果”,您的意思是页眉收缩速度比内容滚动速度慢,那么这是因为您的CSS。在CSS中,有一行代码表示
头的所有0.3s ease
。这意味着所有属性都不会立即应用更改,但会以缓和的方式“动画化”0.3秒。每次更改
标题
高度时,不管世界其他地方发生了什么,都需要0.3秒


如果删除该行,
标题
的收缩率应与
内容

的收缩率相同。在了解真正的问题(文本容器在垂直平移的同时也在滚动)后,我可以通过在内容容器顶部填充滚动量来解决问题,从而向下推动文本以补偿容器的垂直移动。如果有人感兴趣,此更新笔将显示结果:

对先前代码的相关更改用星号包围:

header.on 'scrolling' (_, howmuch) ->
  if howmuch is 0
    header.css 'height' 150
    **content.css 'padding-top' 0**
  else if howmuch >= 50
    header.css 'height' 100
    **content.css 'padding-top' 50**
  else
    header.css 'height' 150 - howmuch
    **content.css 'padding-top' howmuch**

毫无理由地投反对票?谢谢:)如果是缺少代码,我会链接到它。如果不是这样,你至少应该提供一个解释。我已经意识到为什么会发生这种情况,但不知道如何解决它。当标题缩小时,内容框正在重新定位,因此在某种意义上,内容的滚动速度是原来的两倍。我需要找到一种方法,直到页眉缩小到我想要的位置,然后让它正常滚动,我添加了这样的效果,但这不是原因。毕竟,如果滚动一点并等待,动画将完成,但它仍然会导致文本在标题缩小到最小值之前通过标题下方。我一定错过了一些简单的东西,所以我会继续寻找。不过,谢谢你的回复!我认为你应该在问题中更清楚地说明这个问题。从你写的文字来看,问题不完全清楚。