jQuery - 没有动画的ScrollTop

use*_*727 27 jquery animation scroll scrolltop

如何在没有动画的情况下使用scrolltop

此代码有效:

var offTop = $('#box').offset().top;
offTop  = offTop-43;
$('#mainCt').animate({scrollTop: '+=' + offTop + 'px'}, 400);
Run Code Online (Sandbox Code Playgroud)

这是我的(不工作的解决方案):

$("#mainCt").scrollTop('+=' + offTop + 'px');                 // doesn't work
$("#mainCt").scrollTop('+='+offTop);                          // doesn't work
hhh = setTimeout(' $("#mainCt").scrollTop('+offTop+');',800); // doesn't work
Run Code Online (Sandbox Code Playgroud)

演示
http://jsfiddle.net/DNNFF/9/

Ror*_*san 19

试试这个:

var offTop = $('#box').offset().top - 43;
$('#mainCt').scrollTop(offTop);
Run Code Online (Sandbox Code Playgroud)

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


che*_*263 14

也许如果你不想要一个动画或任何花哨的东西只是使用锚

<a name="top"></a>
Run Code Online (Sandbox Code Playgroud)

将它放在需要滚动的位置

并在您正在调用的函数中使用

document.location.href="#top";
Run Code Online (Sandbox Code Playgroud)

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

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

  • 这有效,但是如何在没有动画的情况下使用jQuery ScrollTop? (8认同)
  • 虽然这个答案"有效",但它与浏览器历史混淆.$(元素).scrollTop(offset)更适合没有动画的重新定位,并且不会弄乱浏览器历史记录.尤其是$(window).scrollTop(offset),用于在手风琴加载后重新定位jQuery UI Accordion部分. (3认同)

小智 13

跳过jQuery.只需使用JavaScript:

window.scroll(0, 0);
Run Code Online (Sandbox Code Playgroud)