jQuery:滚动到有溢出的div的顶部:滚动;

时间:2015-11-11 05:39:53

标签: javascript jquery html css

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方法的负整数,这在正常情况下不应发生。

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

这甚至可能吗?

重现的步骤:

  1. 滚动到粉红色 div的底部,其中包含绿色 divs
  2. 点击button
  3. 打开开发工具,查看console.log();返回的内容
  4. 并且滚动到绿色div的顶部不会发生。
  5. 有什么想法吗?

2 个答案:

答案 0 :(得分:1)

只是一个想法,

$parentDiv.scrollTop($parentDiv.scrollTop() + $innerListItem.position().top);

答案 1 :(得分:0)

我已经更新了您的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)
});