jQuery анимирует слайд вниз по клику, но не обратно - PullRequest
1 голос
/ 19 ноября 2010

Я уже несколько часов бездельничаюсь с этой маленькой маленькой деталью, и наконец сдался, хотя я уверен, что решение действительно очень простое.address "в div с переполнением: скрыто, поэтому не отображается перед активацией функции.При нажатии на кнопку «.click» я хочу, чтобы адрес div скользил вниз из скрытой области и в видимый вид.Пока это работает, но я не могу понять, почему он не сдвинется назад при втором щелчке.

    $(".click").click(function(){
        $(".address").animate({top:"0"},{duration:200});
            }, function() {
        $(".address").animate({top:"-55px"},{duration:200});
    });

Может кто-нибудь объяснить мне решение этого?Это, вероятно, очевидное решение, но я просто не могу понять это.

Ответы [ 2 ]

3 голосов
/ 19 ноября 2010

Есть .toggle() для переключения между двумя (или более) функциями (вместо .click(), который просто использует вашу первую функцию), например:

$(".click").toggle(function(){
    $(".address").animate({top:"0"},{duration:200});
}, function() {
    $(".address").animate({top:"-55px"},{duration:200});
});
0 голосов
/ 19 ноября 2010

Вот забавный подход.

$(".click").click(function() {
    var idx = 0;
    return function() {
        $(".address").animate({top: (idx = ++idx % 2) ? 0 : -55}, {duration: 200});
    };
}());

Пример: http://jsfiddle.net/jSsgM/1/

@ Решение Ника чище и разумнее, и его следует использовать, особенно если вы собираетесь делать что-то более сложное.

...