如何在没有动画的情况下使用scrolltop
此代码有效:
var offTop = $('#box').offset().top;
offTop = offTop-43;
$('#mainCt').animate({scrollTop: '+=' + offTop + 'px'}, 400);
这是我的(不工作的解决方案):
$("#mainCt").scrollTop('+=' + offTop + 'px'); // doesn't work
$("#mainCt").scrollTop('+='+offTop); // doesn't work
hhh = setTimeout(' $("#mainCt").scrollTop('+offTop+');',800); // doesn't work
答案 0 :(得分:18)
试试这个:
var offTop = $('#box').offset().top - 43;
$('#mainCt').scrollTop(offTop);
scrollTop
属性只接受整数,不需要后缀或单位。
答案 1 :(得分:13)
也许如果你不想要动画或任何想要使用锚点的东西
<a name="top"></a>
将其放在需要滚动的位置
并在您调用的函数中使用
document.location.href="#top";
您还可以创建一个函数来在元素之前附加锚点,执行document.location
之后的操作,然后删除该锚点。
答案 2 :(得分:12)
跳过jQuery。只需使用JavaScript:
window.scroll(0, 0);
答案 3 :(得分:10)
http://api.jquery.com/scrollTop/
$(window).scrollTop(offTop)
答案 4 :(得分:3)
为什么不在较短的时间内使用它。我摆弄它,它没有动画。没有时间看动画,根本就没有动画。
var offTop = $('#box').offset().top;
offTop = offTop-43;
$('#mainCt').animate({scrollTop: '+=' + offTop + 'px'}, 50); //50 added here as duartion
答案 5 :(得分:1)
你不能玩这段时间吗?
var offTop = $('#box').offset().top;
offTop = offTop-43;
$('#mainCt').delay('800').animate({scrollTop: '+=' + offTop + 'px'}, 1);
答案 6 :(得分:0)
var offTop = $('#box').offset().top;
$(window).scrollTop(parseInt(offTop))