jQuery - 同时使用.slideToggle和.animate

时间:2013-03-01 14:30:10

标签: javascript jquery

我有一部分jQuery似乎没有正常工作。我有一个链接点击,[显示/隐藏]应该slideToggle一个div。同时,我想设置它的动画,以便页面滚动到div的顶部。当我将animate函数放在slideToggle函数中时,它会起作用,例如in this jfiddle

然而,这意味着我想要滑出的div,然后然后页面向下滚动。我喜欢设置它以便两者同时发生,我试图在this jfiddle中进行,但它根本不起作用。我也尝试先做滚动动画,然后是slideToggle,它没有用 - 有没有办法实现这个?干杯!

2 个答案:

答案 0 :(得分:5)

$(document).ready(function () {
    $('.click_to_hide').click(function () {
        var visible = $('.hide_on_click').is(":visible");
        $('.hide_on_click').slideToggle(500);
        if (!visible) {
            $('html, body').animate({
                scrollTop: $('.hide_on_click').offset().top
            }, 500);
        }
    });
});

http://fiddle.jshell.net/YFR2e/3/

答案 1 :(得分:1)

$(document).ready(function () {
    $('.click_to_hide').click(function () {
        $('.hide_on_click').slideToggle(500);
        if($('.hide_on_click').is(':visible')){
          $('html, body').animate({
                scrollTop: $('.hide_on_click').offset().top
            }, 500);
        }
    });
});

尝试将其置于同一个功能