「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 背景画像が読み込まれたかどうかを確実に確認するにはどうすればよいですか?

背景画像が読み込まれたかどうかを確実に確認するにはどうすればよいですか?

2024 年 11 月 24 日に公開
ブラウズ:331

How to Reliably Check if a Background Image Has Loaded?

背景画像ローダーの使用

body タグに背景画像を設定して、背景画像が読み込まれたかどうかを確認しようとしています次に、load() 関数を使用します。ただし、このアプローチは背景画像に対しては効果的に機能しません。

背景画像が完全にロードされたことを確実にするには、別の手法を利用できます:

$('<img/>').attr('src', 'http://picture.de/image.png').on('load', function() {
   $(this).remove(); // prevent memory leaks
   $('body').css('background-image', 'url(http://picture.de/image.png)');
});

このメソッドはメモリ内に新しいイメージを作成し、それにロード イベント リスナーをアタッチします。画像が読み込まれると、load イベントがトリガーされ、背景画像が body タグに設定されます。

バニラ JavaScript では、これは次のように実装できます:

var src = 'http://picture.de/image.png';
var image = new Image();
image.addEventListener('load', function() {
   body.style.backgroundImage = 'url('   src   ')';
});
image.src = src;

画像の読み込みを処理し、Promise を返す抽象関数を作成することもできます。

function load(src) {
    return new Promise((resolve, reject) => {
        const image = new Image();
        image.addEventListener('load', resolve);
        image.addEventListener('error', reject);
        image.src = src;
    });
}

const image = 'http://placekitten.com/200/300';
load(image).then(() => {
   body.style.backgroundImage = `url(${image})`;
});

このアプローチにより、背景画像の読み込みの完了を確実にチェックでき、画像が完全に読み込まれた場合にのみコードが実行されるようになります。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3