29

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

此代码有效:

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/

4

8 回答 8

24

试试这个:

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

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

于 2012-04-13T15:27:25.470 回答
18

也许如果您不想要动画或任何花哨的东西,只需使用锚点

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

把它放在你需要滚动的地方

在你调用 use 的函数中

document.location.href="#top";

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

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

于 2012-04-16T22:11:37.767 回答
18

跳过 jQuery。只需使用 JavaScript:

window.scroll(0, 0);
于 2015-01-20T00:23:35.087 回答
12

http://api.jquery.com/scrollTop/

$(window).scrollTop(offTop)
于 2012-04-13T15:28:12.843 回答
3

为什么不用更短的时间使用它。我摆弄它,它没有动画。因为没有时间看动画,所以根本就没有动画。

var offTop = $('#box').offset().top;
offTop  = offTop-43;
$('#mainCt').animate({scrollTop: '+=' + offTop + 'px'}, 50); //50 added here as duartion
于 2012-04-18T04:25:28.473 回答
1

你不能玩持续时间吗?

var offTop = $('#box').offset().top;
offTop  = offTop-43;
$('#mainCt').delay('800').animate({scrollTop: '+=' + offTop + 'px'}, 1);
于 2012-04-13T15:29:21.337 回答
0

使用jQuery在刷新页面上保持位置的演示:

//------KEEP SCROLL POSITION
        $(window).scroll(function () {
            sessionStorage.scrollTop = $(this).scrollTop();
        });
        $(document).ready(function () {
            if (sessionStorage.scrollTop != "undefined") {
                setTimeout(() => window.scrollTo({
                    top: sessionStorage.scrollTop,
                    left: 0,
                    behavior: 'auto'
                }), 5);
            }
        });
于 2021-12-22T09:16:53.010 回答
-1
var offTop = $('#box').offset().top;
$(window).scrollTop(parseInt(offTop))
于 2018-05-09T06:11:46.170 回答