2012-02-21 9 views
3

私はdivsが現在noneを表示するように設定されています。Divは5000px幅、2000px高さの背景画像を持っています。jQueryで背景イメージをプリロードしますか?

ボタンをクリックしてdiv表示attirbuteをjqueryに切り替えると、画像が大きすぎてdivがロードされ、画像が1/2秒後にロードされます。イメージが準備ができてから表示されるまでプリローダーを表示できる機能はありますか?

おかげ

答えて

1

は、画像をプリロードするためにネイティブのJavaScriptのImageオブジェクトを使用してみてください。

タイルを作成するなどして、ウェブ上でこのような巨大な画像を使用することを避けることも検討してください。

4

この質問はちょうどかなり簡単なシナリオに適合させることができるjavascriptのが、バニラを使用してしばらくを掲載して答えました。

Preloading CSS Images

$(document).ready(function() { 

    var c = new Image(); 

    c.onload = function(){ 
     $("#Your Div ID").css("background-image", "url(Path to Background Image)"); 
    } 

    c.src = "Path to Background Image"; 

}); 
+0

あなたは、これは正確にジャスティンがどのように機能するかを説明できますか? – Liam

+1

画像がロードされたときのイベントハンドラを作成するだけで、画像をdivに背景として適用します。あなたのケースでは、プリローダを最初に表示する関数にしてから、上のコードを実行して画像が表示されたらそれを表示してプリローダーを非表示にします。イメージオブジェクトの詳細については、http://www.w3schools.com/jsref/dom_obj_image.aspを参照してください。 – JustinW

関連する問題