3

私はサイト構築の最終段階にあり、クライアントはスプラッシュ ページを求めています。私の目的は理由を問うことではなく、お金をもらって飛ぶことです...

だから、ここに私が探している一連のイベントがあります:

スプラッシュ ページが開きます。ロゴがフェードインします。クリックして入力します。ロゴがフェードアウトします。サイトの最初の「実際の」ページが開きます。

最初の 3 つのイベントと 4 番目のイベントが動作します。最初の実際のページを開く前に、ロゴがフェードアウトします。

これが私が持っているものです:

<div class="logo_container link" data="commercials.php">
<img src="images/logo_intro.jpg" alt="intro" />
</div>

<script type="text/javascript">

$(function() {

    $('.logo_container').hide();

    $('.logo_container').fadeIn(1000);

   $(".link").click(function(e) {
        $('.logo_container').fadeOut(1000);
        window.location = $(this).attr("data");
    });
});

</script>

</div>

しかし、私はフェードアウトを取得していません。これは、window.location で呼び出された属性 (commercials.php) にジャンプするだけです。

4

3 に答える 3

6

window.location次のように、コールバックメソッドで使用する必要があります。

$(".link").click(function(e) {
        $('.logo_container').fadeOut(1000, function(){
           window.location = $(this).attr("data");
        }); 
});

それ以外の場合window.locationは、フェードアウトイベントと同時に呼び出されます

于 2012-05-02T14:14:03.220 に答える
1

コールバックを使用して、fadeOutがいつ完了したかを確認する必要があります。

ドキュメントからの例:

$('#clickme').click(function() {
  $('#book').fadeOut('slow', function() {
    // Animation complete.
  });
});

アニメーションの完全な行を次のように置き換えますwindow.location = $(this).attr("data");

于 2012-05-02T14:14:32.890 に答える
0

window.location、フェードアウトが開始された直後に更新されるため、それを見る機会はありません。フレームワークに適した方法で の変更を遅らせる.locationか (たとえば、MooTools ではチェーンになります。jquery はわかりません)、標準を使用して 1000 ミリ秒後に発生するようにスケジュールしますsetTimeout()

于 2012-05-02T14:16:53.030 に答える