Javascript 滚动到div jquery中div的顶部

Javascript 滚动到div jquery中div的顶部,javascript,jquery,scroll,Javascript,Jquery,Scroll,我有一个包含其他几个div的div,我希望能够单击哪个div滚动到包含div的顶部 我不想简单地滚动到div的顶部,也就是滚动顶部:0,我希望单击哪个div使该div滚动到顶部 使用scrollTop:$(this).offset().top只给出相对于容器的偏移量,因此它不正确,因为它只返回一个相对较小的值 以下是设置: <div id="container" style="position:relative; height:400px; width:100%; overflow

我有一个包含其他几个div的div,我希望能够单击哪个div滚动到包含div的顶部


我不想简单地滚动到div的顶部,也就是滚动顶部:0,我希望单击哪个div使该div滚动到顶部

使用scrollTop:$(this).offset().top只给出相对于容器的偏移量,因此它不正确,因为它只返回一个相对较小的值

以下是设置:

    <div id="container" style="position:relative; height:400px; width:100%; overflow:auto;"> 
<div id="div1" class="clicker" style="height: 1000px; width 100px; ; background:blue">
        Test
    </div>

    <div id="div2" class="clicker" style="height: 1000px; width 100px; background:green">
        Test 2
    </div>

     <div id="div3" class="clicker" style="height: 1000px; width 100px; background:yellow">
        Test 3
    </div>

</div>
以下是JSFIDLE:


干杯

它所需要的只是
0

$(".clicker").click(function () {
    $('#container').animate({
        scrollTop: 0
    }, 2000);
});

您需要将容器的当前滚动位置与div的位置结合起来

var container = $('#container');

$(".clicker").click(function () {
    var top = $(this).position().top,
        currentScroll = container.scrollTop();

    container.animate({
        scrollTop: currentScroll + top
    }, 1000);

});
演示


本地演示:

$(函数(){
var container=$(“#container”);
$(“.clicker”)。单击(函数(){
var top=$(this).position().top,
currentScroll=container.scrollTop();
容器动画({
scrollTop:currentScroll+top
}, 1000);
});
});
#容器{
位置:相对位置;
高度:400px;
宽度:100%;
溢出:自动;
背景:红色
}
.点击器{
高度:1000px;
宽度:100%;
}
#第一组{
背景:蓝色
}
#第二组{
背景:绿色
}
#第三组{
背景:黄色
}

试验
测试2
测试3

也许这会有所帮助:不是真的;我不想简单地回滚到container div的顶部,即scrollTop:0。我希望无论单击哪个div,该div都会滚动到顶部;我希望无论单击哪个div,该div都会滚动到顶部。
var container = $('#container');

$(".clicker").click(function () {
    var top = $(this).position().top,
        currentScroll = container.scrollTop();

    container.animate({
        scrollTop: currentScroll + top
    }, 1000);

});