イメージをプリロードする方法はたくさんありますが、jqueryを使って背景イメージをプリロードするのに役立つものはありません。プリロードの背景画像
私は私が達成したいものの単純なHTMLモックアップを作った: http://jsfiddle.net/3rfhr/
- 負荷のdivが
- 背景が
- ロードのdivが
- 背景DIVが 現れ消えロードされ、表示されます
私はdiv遷移を処理できますが、どのように私はCSSの背景を事前にロードする必要があります。私の質問を読んでくれてありがとう:)
イメージをプリロードする方法はたくさんありますが、jqueryを使って背景イメージをプリロードするのに役立つものはありません。プリロードの背景画像
私は私が達成したいものの単純なHTMLモックアップを作った: http://jsfiddle.net/3rfhr/
私はdiv遷移を処理できますが、どのように私はCSSの背景を事前にロードする必要があります。私の質問を読んでくれてありがとう:)
それは背景画像である限り、あなたはできません。正常にロードし、背景イメージを設定します。このようなもの:
var $img = $('<img src="' + src + '">');
$img.bind('load', function(){
$('.yourDiv').css('background-image', 'url(' + src + ')');
});
if($img[0].width){ $img.trigger('load'); }
画像がキャッシュされている場合は、一部のブラウザで最後の行が必要です。
A working exampleモックsetTimeout
を使用して読み込み時間をシミュレートします。
関連のjQueryのコードは次のとおりです。
$('#LOADING-SIGN-DIV').fadeOut();
$('#DIV-THAT-NEEDS-PRELOADING').fadeIn();
'setTimeout'はこのために使用すべきではありません... –
' setTimeout'は読み込み時間をシミュレートするためだけにあり、他の理由はありません。 –
なぜjQueryを使ってcss
属性からURLをつかむない、プリロードを行うには?
var bg_url = jQuery("#DIV-THAT-NEEDS-PRELOADING").css('background-image');
// using regex to replace the " url(...) "...
// apologies for my noobish regex skills...
bg_url = str.replace(/ /g, '', bg_url); // whitespace...
bg_url = str.replace(/url\(["']?/g, '', bg_url); // next, the 'url("'...
bg_url = str.replace(/["']?\)/g, '', bg_url); // finally, the trailing '")'...
// without regex, using substring if confident about no quotes/whitespace...
bg_url = bg_url.substring(4, bg_url.length-1);
// preloading...
var img = new Image();
img.onload = function()
{
// do transitions here...
};
img.src = bg_url;
すべてのブラウザで空白が無視されることが確実でない限り、2行目はおそらく正規表現になりますか? ( 'url(...)'を解析することが分かりました) –
css属性から 'url(...)'を削除するには、はい、確かに正規表現を使用することができますが、jQueryは常にあなたにすばらしい文字列値を与えるはずです;) –
ええと、それを実現:)あなたが答えたときに空白や引用符について心配しました。 –
あなたはロジックはほぼ良好ですが、jqueryのCSSのイベントをキャッチできません。
<img>
要素に背景イメージを読み込む必要があります。その要素のイベント負荷を捕まえ、起動時に背景イメージをそのsrcに変更し、残りのロジックを実行します。
CSSとJavaScriptを使用して画像をプリロードすると、これらの2つのリンクが簡単で役立つことを願ってください。
http://perishablepress.com/press/2009/12/28/3-ways-preload-images-css-javascript-ajax/
http://perishablepress.com/press/2006/11/14/preloading-images-with-css-and-javascript/
ここでjQueryを使って画像をプリロードカバー先週からのポストです:HTML 5 File load image as background-image
そしてここでは、参照ポストソリューションです:http://sveinbjorn.org/dataurls_css
これはHTML 5 APIを使用する唯一のソリューションかもしれませんが、URLを使用した通常の画像読み込みでは、このソリューションは@colvesのソリューションよりも低速でした。デバッガが大きなbase64でエンコードされたイメージデータを表示するため、イメージの読み込み速度が遅くなり、デバッグも遅くなります。 – jbustamovej
アハは、など'src'部分は画像のURLに置き換えられますか? – pufAmuf
はい、 'src'はイメージURLです。必要なものを設定してください。 Chris Kempenさんの答えは、CSSからsrcを取得しているという点で良い考えですが、2行目の内容がわかりません –
強い単語ではありません。ファイルApiを使用して画像を読み込み、src属性を「data:image/gif; base64、... my ... encoded ... image」に設定することができます。 別の記事への参照については、この技術。 –