单击滚动div内部

3

我有一个包裹块(例如侧边栏),里面有更小的块。当点击时,我想让更小的块滚动到包裹块的顶部(看起来像标题)。

我尝试了很多方法,但都没有成功,我就是不明白它应该如何工作的逻辑。

$(".second").click(function() {
  $('.wrap').animate({
      scrollTop: $(".second").offset().top
    }, 'slow');
});

更新:我认为我错误地解释了我的问题。也许这样说:想象一下联系人的长列表,当你点击某个联系人时,所有内容都会滚动,直到该联系人位于可见区域的顶部。

更新后的 jsFiddle

抱歉我的英语不好。


据我所知,你的逻辑是使.wrap元素滚动到顶部。你需要专注于使.second元素在.wrap内滚动到顶部。 - AGE
请让我知道您是否想要像这样的效果:http://jsfiddle.net/6k6av5s2/ (在动画发生后检查所有类的CSS)。如果是的话,我会将其发布为答案。 - Alive to die - Anant
@AlivetoDie,那不是我想要做的。 - dimaa
像这样吗?http://jsfiddle.net/q1qxuekm/ - Manuel Otto
@ManuelOtto,太好了!!非常感谢!!请将其发布为答案。 - dimaa
我会将它发布为答案,以便可能遇到相同问题的人,好吗? - Manuel Otto
1个回答

4
您需要确定可滚动div中元素的位置,并将其添加到当前scrollTop值中:
scrollTop: $(e.currentTarget).position().top + $('.wrap').scrollTop()

jsfiddle


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接