・これにより、取得は完了しているが、描画は途中というタイミングでjsの処理が行われる。
・ちゃんと画面表示(描画)まで終わったタイミングで次の処理を行いたい。というケースでは、onloadは使えない。
・これに対処するためには、一度アニメーションさせ、その完了イベントを利用する。「ontransitionendイベント」
使い方
<style>
.fade_off {
opacity: 0;
}
.fade_on {
opacity: 1;
-webkit-transition: all 1s;
-moz-transition: all 1s;
-o-transition: all 1s;
-ms-transition: all 1s;
transition: all 1s;
}
</style>
<div>
<p id="imagemessage">ただいま画像を読み込み中……</p>
<img src="無題.bmp" class="fade_off" id="target-image" ontransitionend="ImageGuide();">
</div>
<script>
setTimeout(() => {
$("#target-image").removeClass("fade_off").addClass("fade_on");
}, 100);
function ImageGuide() {
document.getElementById('imagemessage').innerText = '読込完了しました!';
setTimeout(() => {
alert('読込完了しました!');
}, 100);
}
</script>
参考
https://www.gipservice.com/blog/0930/
https://developer.mozilla.org/en-US/docs/Web/API/Element/transitionend_event
https://developer.mozilla.org/ja/docs/Web/API/Element/transitionend_event
https://cly7796.net/blog/javascript/process-with-javascript-after-completing-css-animation/