延迟滑动切换

时间:2012-10-21 00:29:55

标签: jquery slidetoggle slideup

我在链接上有一个带滑动效果的导航,一旦点击,页面就会从底部向上滑动,而名为#portfolio的主页面一旦打开就会向下滑动,如果用户再次点击同一个链接我希望页面向下滑动。

我想要完成的是,如果两个面板中的一个,#aboutpage和#contactpage在我点击另一个面板时打开,例如,如果#aboutpage打开,我点击链接#contactpage,我想让about页面向下滑动,一旦#contactpage向下滑动。我用十几种不同的方法尝试了十几次,但我似乎无法让它发挥作用。

http://maximsiebert.com/unamed/Untitled-1.html

    $('.about').click(function() {
    if (!$('#aboutpage').is(":visible")) {
    $('#aboutpage') .slideToggle(1000)
    $('#portfolio') .slideToggle(1000)
    }
else if ($(('#contactpage').css('display') == "block")) {
    $('#contactpage') .slideToggle(1000)
    $('#aboutpage') .delay(1000).slidetoggle(1000)
}else {
    $('#portfolio').slideDown(1000);
     $('#aboutpage').slideUp(1000);
}
});

1 个答案:

答案 0 :(得分:0)

我会再试一次。不要使用slideToggle,而是向上滑动所有,然后向下滑动当前的那个,但前提是它始终不可见:

$('.about').click(function() {
    var wasVisible = $("#aboutpage").is(":visible");
    $("#aboutpage").slideUp();
    $("#portfolio").slideUp();
    $("#contactpage").slideUp();
    if (!wasVisible) {
        $('#aboutpage').slideDown(1000)
    }
}

演示here