Firefox не будет загружать изображения с отображением: ни один, пока они не потребуются для показа пользователю. Chromium будет зависать до тех пор, пока изображение не будет загружено, а затем отобразит его.
При меньших размерах файлов будет краткий сигнал sh, если изображение еще не загружено в Firefox. При больших размерах файлов задержка значительно увеличивается, что также приводит к заметному зависанию Chromium.
Я бы хотел, чтобы изображения отображались: предварительно не загружено, поэтому при их отображении задержка отсутствует.
Я пытался использовать Javascript для объявления нового объекта Image, но этот не работает с Firefox или Chromium.
Вы можете переключаться между изображениями в этом примере с клавишами со стрелками вправо и влево.
<!DOCTYPE html>
<html>
<head>
<style>
body, html {
height: 100%;
margin: 0;
padding: 0;
}
.imgs {
width:50%;
height: 50%;
}
</style>
</head>
<body>
<img src="https://picsum.photos/200/100" style="display: block;" class="imgs">
<img src="https://picsum.photos/200/200" style="display: none;" class="imgs">
<script>
imgs = document.getElementsByClassName("imgs");
// THIS DOES NOT WORK
//~ function preloadImage(url)
//~ {
//~ var img = new Image();
//~ img.src = url;
//~ }
//preloadImage("myImg.jpg"); THIS DOES NOT WORK
document.onkeydown = checkKey; // directional keys
function checkKey(e) {
if (document.activeElement.tagName != "INPUT") {
e = e || window.event;
switch (e.keyCode) {
case 38:
// up arrow
break;
case 40:
// down arrow
break;
case 37:
// left arrow
imgs[0].style.display = "block";
imgs[1].style.display = "none";
break;
case 39:
// right arrow
imgs[0].style.display = "none";
imgs[1].style.display = "block";
break;
}
}
}
</script>
</body>
</html>