Firefox不会加载带有显示的图像:在需要向用户显示之前,不会加载任何图像。铬将一直停滞,直到图像加载完毕,然后再显示。
文件较小时,如果图像尚未在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>