Jquery:页面从当前位置向下滚动 100px

发布于 2024-10-15 11:49:29 字数 309 浏览 7 评论 0原文

如何将页面从当前位置向下移动 100 像素?

我的代码不起作用:

    $('html,body').animate({
        scrollTop: $(window).position().top + 100
    })

像这样,但没有将页面滚动到特定元素,而是从窗口当前位置滚动 100px:

$('html, body').animate({
scrollTop: $("#scrollToHere").offset().top
}, 2000);

How do I animate the page down 100px from where it currently is?

my code doesn't work:

    $('html,body').animate({
        scrollTop: $(window).position().top + 100
    })

like this, but without it scrolling the page to a specific element, instead, scrolling 100px from the windows current position:

$('html, body').animate({
scrollTop: $("#scrollToHere").offset().top
}, 2000);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一花一树开 2024-10-22 11:49:29

scrollTop 属性告诉您元素从顶部开始放置的位置。您必须使用 window.scrollBy 方法和 window.scrollY 属性。不幸的是,您不能在 window.scrollY 属性上使用 animate,因为它是只读的。

您应该能够使用这样的东西:

function animateScrollBy (x, y, interval) {
    var xpos = 0,
    ypos = 0,
    updateScroll = function () {
        var moveX = xpos <= x ? 1 : 0,
            moveY = ypos <= y ? 1 : 0;

        window.scrollBy(moveX, moveY);
        xpos += 1;
        ypos += 1;
        if (moveX === 0 && moveY === 0) {
            clearInterval(scrollInterval);
        }

    },
    scrollInterval = null;

    scrollInterval = setInterval(updateScroll, interval||1)
}

animateScrollBy(0, 100);

速度与移动的像素数量有关。我稍后会尝试更新它。

The scrollTop property tells you where the element is placed from the top. You have to use the window.scrollBy method and the window.scrollY property. Unfortunately you can't use animate on the window.scrollY property since it's read-only.

You should be able to use something like this:

function animateScrollBy (x, y, interval) {
    var xpos = 0,
    ypos = 0,
    updateScroll = function () {
        var moveX = xpos <= x ? 1 : 0,
            moveY = ypos <= y ? 1 : 0;

        window.scrollBy(moveX, moveY);
        xpos += 1;
        ypos += 1;
        if (moveX === 0 && moveY === 0) {
            clearInterval(scrollInterval);
        }

    },
    scrollInterval = null;

    scrollInterval = setInterval(updateScroll, interval||1)
}

animateScrollBy(0, 100);

The speed is relavant to the amout of pixels moved. I'll try it to update it later.

秋千易 2024-10-22 11:49:29

我想到了scrollto插件:
http://flesler.blogspot.com/2007/10/jqueryscrollto.html
http://demos.flesler.com/jquery/scrollTo/

但也许有点矫枉过正为此:)

The scrollto plugin comes to mind:
http://flesler.blogspot.com/2007/10/jqueryscrollto.html
http://demos.flesler.com/jquery/scrollTo/

but maybe it's a bit overkill for that :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文