0

私は小さなゲームを構築しているだけなので、最初のページ (イントロ) をロードしてから、すぐに 2 番目のページ (ゲームの第 1 レベルですが、表示せずにロードするだけです) のロードを開始する必要があります。ユーザーがクリックして表示..

今のところ私のコードは次のとおりです。

私のhtmlページで:

<body id="loadlevel">

私のJSページで:

var level1 = "level1.html";
$("#loadlevel").load(level1).fadeIn("slow");

しかし、ロードされたページがすぐに表示されます!..

次のページをロードしてから、ユーザー入力がロードされたページを表示するのを待つにはどうすればよいですか?..

私はJQueryのhide()とshow()を使用しますが、hide()はページ全体(現在のページも)を非表示にします;)

4

3 に答える 3

3

非表示のフィールドをいくつか作成し、データをロードします。

<div id="temp" style="display:none;"></div>

次にJSで

var level1 = "level1.html";
$("#temp").load(level1);

$('#start').click(function(){
   $('#main').html($('#temp').html());
});
于 2012-12-05T18:23:06.750 に答える
0

あなたの最善の策は、最初は css または jquery で非表示になっているメイン div を用意し、そこにコンテンツをロードしてフェードインすることです。

于 2012-12-05T18:24:05.280 に答える
0

.load()- サーバーからデータをロードし、返された HTML を一致した要素に配置します。

Ajax リクエストが送信されようとしているときはいつでも、jQuery は他に未解決の Ajax リクエストがあるかどうかをチェックします。進行中のものがない場合、jQuery は ajaxStart イベントをトリガーします。この時点で、.ajaxStart() メソッドで登録されたすべてのハンドラーが実行されます。

CSS:

.get-in{
   background:white;
   position:absolute; // or fixed
   left:0;
   top:0;
   width:100%;
   height:100%;
}

jQuery:

$('#loadlevel').ajaxStart(function() {
  $('<div/>').appendTo('body').addClass('get-in');
});

$('.get-in').on('click', function(){
   $(this).fadeOut("slow");
});
于 2012-12-05T18:33:24.573 に答える