Javascript scrollTop等于0,即使div在页面的下方

Javascript scrollTop等于0,即使div在页面的下方,javascript,jquery,html,css,scrolltop,Javascript,Jquery,Html,Css,Scrolltop,我有两个div。包含页面上半部分的页面。另一个在顶部分区的正下方。第二个分区在页面下方大约有1.5个视口。但当我试图在按下导航按钮时将页面滚动到第二个div。它把我带到了页面的顶部。即使它引用的是第二个div的scrollTop属性。scrollTop始终等于位置0。如果要滚动到其他div,则需要使用offset并滚动到哈希位置。如果您使用的是引导,那么可以使用ScrollSpy。如果没有,则可以使用此代码处理平滑滚动到散列位置的操作 在您的情况下,散列应该是div的ID,您可以通过在按钮/链接

我有两个div。包含页面上半部分的页面。另一个在顶部分区的正下方。第二个分区在页面下方大约有1.5个视口。但当我试图在按下导航按钮时将页面滚动到第二个div。它把我带到了页面的顶部。即使它引用的是第二个div的scrollTop属性。

scrollTop始终等于位置0。如果要滚动到其他div,则需要使用offset并滚动到哈希位置。如果您使用的是引导,那么可以使用ScrollSpy。如果没有,则可以使用此代码处理平滑滚动到散列位置的操作

在您的情况下,散列应该是div的ID,您可以通过在按钮/链接上设置a href来匹配希望按钮/链接滚动到的div的ID,从而将其作为目标

因此,您的链接可能如下所示:

 <a href="#somediv">Some Link</a>
 <div class="someclass" id="somediv"></div>

这是开发人员工具的屏幕截图。它说这个div有一个scrollTop为0,即使它不在页面的顶部……可能的副本是我在视差2上悬停的gif,这是我提到的“第二个div”。如您所见,它不在页面的顶部,因此不应该有scrollTop 0。使用top,scrollTop是我认为可以参考div本身的,它可以有滚动条。您使用jQuery吗?抱歉-忘记提到解决方案需要jQuery。我需要添加什么才能让它实现我想要的功能?3#hobbitsandinterests是按钮的id
// Select all links with hashes
$('a[href*="#"]')
  // Remove links that don't actually link to anything
  .not('[href="#"]')
  .not('[href="#0"]')
  .click(function(event) {
    // On-page links
    if (
      location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') 
      && 
      location.hostname == this.hostname
    ) {
      // Figure out element to scroll to
      var target = $(this.hash);
      target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
      // Does a scroll target exist?
      if (target.length) {
        // Only prevent default if animation is actually gonna happen
        event.preventDefault();
        $('html, body').animate({
          scrollTop: target.offset().top -80
        }, 1000, function() {
          // Callback after animation
          // Must change focus!
          var $target = $(target);
          $target.focus();
          if ($target.is(":focus")) { // Checking if the target was focused
            return false;
          } else {
            $target.attr('tabindex','-1'); // Adding tabindex for elements not focusable
            $target.focus(); // Set focus again
          };
        });
      }
    }
  });