jquery Fade в одном элементе после FadeOut предыдущего div? - PullRequest
16 голосов
/ 24 сентября 2011
jQuery(document).ready(function(){
    $(".welcome").fadeOut(9500);
    $(".freelance").fadeIn(10000);
    $(".freelance").fadeOut(4500);
});

Я хочу, чтобы приветственное сообщение медленно исчезало, а затем другое div делилось на своем месте, а затем fadeOut - очевидно, когда окно приветствия больше не существует.

<header>
    <h1 class="left"><a href="index.html"></a></h1>
    <div class="left yellowbox welcome"><p>Welcome to my portfolio.</p></div>
    <div class="left greenbox freelance"><p>I am currently available for for work, contact me below.</p></div>
</header>

Ответы [ 4 ]

27 голосов
/ 24 сентября 2011

Вам необходимо вызвать дополнительные fadeIn() и fadeOut внутри функции обратного вызова для первой.Все методы анимации (и многие другие) в jQuery допускают обратные вызовы:

jQuery(document).ready(function(){
    $(".welcome").fadeOut(9500,function(){
        $(".freelance").fadeIn(10000, function(){
            $(".freelance").fadeOut(4500);
        });
    });
});

Это приведет к тому, что .welcome сначала исчезнет.Как только он исчезнет, ​​.freelance исчезнет. Как только он закончится, он исчезнет.

1 голос
/ 24 сентября 2011
jQuery(document).ready(function(){
   $(".welcome").fadeOut(9500, function() {
      $(".freelance").fadeIn(500, function () {
          $(".freelance").fadeOut(4500);
      });
   });
});
0 голосов
/ 24 сентября 2011

Возможно, вы хотите .delay ()

jQuery(document).ready(function(){
    $(".welcome").delay(9000).fadeOut(9500);
    $(".freelance").delay(10000).fadeIn(10000);
    $(".freelance").delay(145000).fadeOut(4500);
});
0 голосов
/ 24 сентября 2011

Я считаю, что этот код может работать

$(".welcome").fadeOut(9500).queue(function(next) { 
    $(".freelance").fadeIn(10000).queue(function(next) {
        $(".freelance").fadeOut(4500);
    });
});         
...