Javascript 滚动到div jquery中div的顶部
我有一个包含其他几个div的div,我希望能够单击哪个div滚动到包含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的顶部,也就是滚动顶部: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);
});