$(“html”)。animate({scrollTop:$(document).height()},“slow”);如果它在底部不滚动它

时间:2011-03-24 09:29:06

标签: jquery scrollto

我有三个隐藏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次点击不会动画,因为你已经在那里......

3 个答案:

答案 0 :(得分:7)

只需使用$(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");
});

答案 1 :(得分:1)

不知道你究竟想做什么,我猜这应该对你有帮助,

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

祝你好运

答案 2 :(得分:0)

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

然后,什么是按钮?一个链接输入?如果按钮是链接

<a href="#">

您可以在函数末尾添加“return false”句子。这可以防止链接作为默认链接工作,并且navegator将转到文档的顶部。

但是,真的......问题是什么?