背景画像ローダーの使用
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