$("html").animate({scrollTop: $(document).height() }, "慢");如果它位于底部,请不要滚动它

发布于 2024-10-26 06:17:32 字数 587 浏览 4 评论 0 原文

我有三个隐藏 div 的按钮,当我单击一个按钮时,我希望内容滚动到底部,然后当我单击另一个按钮时,我希望页面保持在原来的位置,但加载新内容。

我尝试过变量和 if 语句

var i=0;
$('#link-slide13').click(function(){
        if (i==0){//nothing's been scrolled
            $("html").animate({ scrollTop: $(document).height() }, "slow");
            i=1;

        }else{
            //don't do anything
        }
});

有什么想法吗? 感谢您的回答!

编辑:抱歉,我真的认为我没有解释清楚自己, http://ephemurl.com/4w/5ws 这是我目前所拥有的,最后一个6 个部分弹跳滚动到文档底部,但我希望这种情况只发生一次,然后接下来的 5 次点击不会产生动画,因为你已经在那里了......

I have three buttons which have hidden divs, when i click on one i want the content to scroll to the bottom, then when i click another I want the page to stay where it is but load the new content.

I've tried variables and if statements

var i=0;
$('#link-slide13').click(function(){
        if (i==0){//nothing's been scrolled
            $("html").animate({ scrollTop: $(document).height() }, "slow");
            i=1;

        }else{
            //don't do anything
        }
});

Any ideas?
Thanks for the answers!

Edit: Sorry i don't really think i've explained myself,
http://ephemurl.com/4w/5ws here, is what I have at the minute, the last 6 sections bounce to scroll to the bottom of the document, but i want this to only happen once and then for the next 5 clicks don't animate because you're already there...

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

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

发布评论

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

评论(3

长伴 2024-11-02 06:17:32

只需使用 $(body) 而不是 $(html)

演示
http://jsfiddle.net/APebY/

$(function(){
var i=0;
$('#link-slide13').click(function(){
        if (i==0){//nothing's been scrolled
            $("body").animate({ scrollTop: $(document).height() }, "slow");
            i=1;

        }else{
            //don't do anything
        }
});
});

您还可以在事件触发器中使用 unbind 使其仅运行一次

$('#link-slide13').click(function(){

            $("body").animate({ scrollTop: $(document).height() }, "slow");

            $(this).unbind("click");
});

just use $(body) instead of $(html)

demo
http://jsfiddle.net/APebY/

$(function(){
var i=0;
$('#link-slide13').click(function(){
        if (i==0){//nothing's been scrolled
            $("body").animate({ scrollTop: $(document).height() }, "slow");
            i=1;

        }else{
            //don't do anything
        }
});
});

You can also use unbind within the event trigger to make it run only once

$('#link-slide13').click(function(){

            $("body").animate({ scrollTop: $(document).height() }, "slow");

            $(this).unbind("click");
});
近箐 2024-11-02 06:17:32

不知道你到底想做什么,我想这应该对你有帮助,

$('#link-slide13').toggle(function(){
    $("html").animate({ scrollTop: $(document).height() }, "slow");
},function(){
    //don't do anything
})

祝你好运

Don't Know what exactly you're trying to do, I guess this should help you,

$('#link-slide13').toggle(function(){
    $("html").animate({ scrollTop: $(document).height() }, "slow");
},function(){
    //don't do anything
})

Good Luck

ζ澈沫 2024-11-02 06:17:32

我们无法观看您的 html,但我认为您只将该功能应用于一键巫婆 id="link-slide13"。如果它必须在三个按钮中工作,请更改您的 JQuery 选择器。 (向所有按钮添加一个类,您可以通过 $(".className"))轻松选择所有按钮。

那么,什么是按钮呢?链接输入?如果按钮是链接

<a href="#">

,您可以在函数末尾添加“return false”语句。这可以防止链接默认工作并且导航器转到文档顶部。

但是,真的……有什么问题吗?

We can't watch your html, but I think that you only have applied the function to one button witch id="link-slide13". If it must works in the three buttons change your JQuery selector. (adding a class to all buttons you can select all easy whith $(".className")).

Then, what is a button? a link an input? If the button is a link

<a href="#">

you can add a "return false" sentence at the end of the function. This prevent that the link works as default and the navegator go to the top of the document.

But, really...what's the problem?

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