Codepen Link

我需要滚动到具有固定heightoverflow: scroll;的div的顶部。


  的JavaScript


$('button').click(function() {
  var $target = $('aside div:first-child');
  var scrTop = Math.abs($target.offset().top);
  $('html, body').animate({
      scrollTop: scrTop
    }, 400);
  console.log($target.offset().top)
});


问题是console.log()返回offset.top方法的负整数,通常情况下不应发生这种情况。

我尝试了不同的方法,但找不到方法。

那有可能吗?

重现步骤:


滚动到粉红色div的底部,里面是绿色divs
点击button
打开开发工具,看看console.log();返回什么
并且不会滚动到绿色div的顶部。


有任何想法吗?

最佳答案

我已经更新了您的Codepen here

您错误地获取了scrTop值,并且正在滚动整个html文档(没有滚动)

Codepen JS

$('button').click(function() {
  var $target = $('aside');
  var scrTop = Math.abs($target.offset().top);
  $target.animate({
      scrollTop: scrTop
    }, 400);
  console.log(scrTop)
});

10-08 04:59