私は針ゲージを使用するjQueryプラグインを使用しています。プラグインを含むページを最初にロードすると、プラグインは背景イメージがロードされる前にアニメーションを開始します。スピードメーターが範囲外になると、2番目の画像(「破損ゲージ」)が読み込まれますが、画像が読み込まれるまでにもう一度遅延があります。jQueryプラグインのCSS背景画像をプレビュー
http://jacob-king.com/public/notSoPublic/jquery.speedometer-1.0.3/example.html
:「壊れた」画像プリロードの問題を解決し、私は this solutionを使用してみましたhttp://jacob-king.com/demo/speedometer
、(これを見るために、ゼロより低いまたはより高い100の値を入力)
(function(){
// counter
var i = 0;
// create object
imageObj = new Image();
// set image list
images = new Array();
images[0]=_speedometerDirectory+"/background.jpg";
images[1]=_speedometerDirectory+"/background-broken.jpg";
// start preloading
for(i=0; i<=1; i++)
{
imageObj.src=images[i];
}
})();
しかし、アニメーションを開始する前に両方の背景イメージがロードされるのをプラグインが待つようにするにはどうすればよいですか?
ソリューション
画像は$の.Fn呼び出し不適切なように見えたの外に置く、jQueryプラグインの一部としてロードされたので。速度計機能が呼び出されない限り、イメージはロードされません。
私はcrimson_penguinのソリューションを少し変更したバージョンと一緒に行くことになった:
var img0 = new Image();
img0.src = _speedometerDirectory+"/background.jpg";
var img1 = new Image();
img1.src = _speedometerDirectory+"/background-broken.jpg";
$(img0).load(function() {
$(img1).load(function() {
// Everything's ready. Now we begin.
});
});
これはおそらく、少し場しのぎに見えます。より洗練された構文を自由に提案してください(これは遅く、疲れています。結果はhereと表示され、私は1.0.4アップデートの一部としてそれを含めます。みんな、ありがとう。
編集:私はあまりにも早く話しました。キャッシュにロードされたイメージがないと、プラグインでは、Google Chromeの最初のページのロードに起動に失敗した...イメージがロードされた後に
'dom ready'ではなく' onload'関数を実行してみてください – Raynos