Javascript div中的scrollTop不工作

Javascript div中的scrollTop不工作,javascript,jquery,html,css,scrolltop,Javascript,Jquery,Html,Css,Scrolltop,我有一段经过测试的代码,对我来说一直都很好,但我正在尝试一些新的东西。我没有使用主体的滚动位置,而是有一个ID为#main的div,它的auto溢出 我遇到的问题是,当您单击页面链接(从#maindiv的内部或外部)时,页面会移动,但不会移动到正确的位置。是什么导致了这个问题 $('.scrollto').click(function() { var elementClicked = $(this).attr("href"); var destination = $(

我有一段经过测试的代码,对我来说一直都很好,但我正在尝试一些新的东西。我没有使用主体的滚动位置,而是有一个ID为
#main
的div,它的auto溢出

我遇到的问题是,当您单击页面链接(从
#main
div的内部或外部)时,页面会移动,但不会移动到正确的位置。是什么导致了这个问题

$('.scrollto').click(function() {
       var elementClicked = $(this).attr("href");
       var destination = $(elementClicked).offset().top;
       $("#main:not(:animated)").animate({ scrollTop: destination} );
       return false;
});
以下是
#main
的CSS:

#main { 
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: auto;
  height: auto;
  z-index: 2;
  overflow: auto;
  overflow-x: hidden;
  background: #fff;
  -webkit-overflow-scrolling: touch;
}
编辑

在@Moje的帮助下,我在这里重新创建了这个问题:


单击“单击我转到目标1”链接。在该部分中,您将看到另一个指向目标2的链接。单击该链接,它将不会完全转到正确的ID。如果您继续单击同一链接,则每次单击该链接时,页面都会上下移动。

似乎适合我。代码笔->

编辑: 我用你的例子编辑了我的笔,明白了你的意思。(我还重新命名了一些VAR以反映其真正目的)
因此,在将结果
scrolltop
值记录到animate的回调中之后,我发现
#main
的真正目标scrolltop值应该是目标元素的
offset().top
+当前(或预滚动)
$(#main').scrolltop()的值


结帐看看我的意思。

似乎适合我。代码笔->

编辑: 我用你的例子编辑了我的笔,明白了你的意思。(我还重新命名了一些VAR以反映其真正目的)
因此,在将结果
scrolltop
值记录到animate的回调中之后,我发现
#main
的真正目标scrolltop值应该是目标元素的
offset().top
+当前(或预滚动)
$(#main').scrolltop()的值


签出以了解我的意思。

我看到了您的代码笔示例,并注意到一个错误。错误是您没有添加实际的滚动值。一个简单的例子是,当您单击并且scrollTop值为0时,它可以正常工作,但是当scrollTop值不是0时,
destination
值与滚动为0时的
destination
值不同。 您可以看到分叉示例。
另外,我建议您使用
event.preventDefault()
而不是
returnfalse,以避免haschange或URL重定向。

我看到了您的代码笔示例,并注意到一个错误。错误是您没有添加实际的滚动值。一个简单的例子是,当您单击并且scrollTop值为0时,它可以正常工作,但是当scrollTop值不是0时,
destination
值与滚动为0时的
destination
值不同。 您可以看到分叉示例。
另外,我建议您使用
event.preventDefault()
而不是
returnfalse,以避免haschange或URL重定向。

这是一个奇怪的链接,因为第一个链接可以工作,并且总是滚动到正确的ID,但是如果我单击第二个链接,则代码的滚动位置可能错误。这可能吗?我已经用多个
滚动条和目标更新了画笔。这支钢笔仍然像预期的那样工作。还要确保你的目标ID是唯一的我想我已经用你的代码复制了这个问题:点击Go to target 1,然后在段落文本中你会看到另一个指向target 2的链接。单击该按钮,它将不会完全进入正确的部分。然后继续点击,每次点击页面都会上下移动。这很奇怪,因为第一个链接起作用,并且总是滚动到正确的ID,但是如果我点击第二个链接,那么代码的滚动位置就好像是错误的。这可能吗?我已经用多个
滚动条和目标更新了画笔。这支钢笔仍然像预期的那样工作。还要确保你的目标ID是唯一的我想我已经用你的代码复制了这个问题:点击Go to target 1,然后在段落文本中你会看到另一个指向target 2的链接。单击该按钮,它将不会完全进入正确的部分。然后一直点击它,每次点击时页面都会上下浮动。