4

「スプラッシュ」の ID を持つ div を持つ Web サイトにスパッシュ画面があります。div をフェードインさせようとしています。ユーザーが div をクリックすると、フェードアウトしてメインサイトにリダイレクトされます。ユーザーがクリックしないと、フェードアウトして 10 秒後にリダイレクトされます。

時限リダイレクトは機能していますが、クリック機能は機能していません。

    <script type="text/javascript">
  $(document).ready(function() {
  $('#splash').hide();  
        $('#splash').fadeIn(1000, function() {
              $(this).delay(10000).fadeOut(1000, function() { 
               window.location = 'http://www.examle.com'; });
              $(this).click().fadeOut(1000,function() { 
               window.location = 'http://www.example.com'; });
         });
  });
</script>

どんな助けでも素晴らしいでしょう

4

1 に答える 1

5

これを試して:

$(document).ready(function() {
  $('#splash').hide();
  $('#splash').click(function(){
             $(this).fadeOut(1000,function() { 
                     window.location = 'http://www.example.com'; });
             });
  $('#splash').fadeIn(1000, function() {
           window.setTimeout ( function() {
             $('#splash').fadeOut(1000, function() { 
               window.location = 'http://www.example.com'; }) }
             , 10000);
     });
 });​

例に加えた変更:

クリックハンドラーの設定をfadeOut関数の外に移動し(より良い方法、IMHO)、delay()への呼び出しをsetTimeout()に変更しました。

違いは、setTimeout() が許可するのに対し、delay() は他の jQuery コードをバックグラウンドで実行できないことです。

于 2010-07-13T03:39:22.947 に答える