jQuery - 没有动画的ScrollTop

时间:2012-04-13 15:24:51

标签: jquery animation scroll scrolltop

如何在没有动画的情况下使用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

样本
http://jsfiddle.net/DNNFF/9/

7 个答案:

答案 0 :(得分:18)

试试这个:

var offTop = $('#box').offset().top - 43;
$('#mainCt').scrollTop(offTop);

scrollTop属性只接受整数,不需要后缀或单位。

答案 1 :(得分:13)

也许如果你不想要动画或任何想要使用锚点的东西

<a name="top"></a>

将其放在需要滚动的位置

并在您调用的函数中使用

document.location.href="#top";

您还可以创建一个函数来在元素之前附加锚点,执行document.location之后的操作,然后删除该锚点。

http://jsfiddle.net/fSrxr/1/

答案 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))