有什么方法可以检测客户端是否下载了完整图片?

Any way to detect whether the client has downloaded a full picture?

我实现了一个主要是 CSS 幻灯片的网站。问题是在我的 phone 上,互联网连接不好,图片没有完成加载,下一张图片开始加载,这是糟糕的用户体验。有没有办法通过JS检测客户端是否加载完图片?

您可以使用 load 事件和延迟加载附近的东西来实现此目的

<img src="mypicture.jpg" onload="pictureLoadCallback(this)">
<img data-src="mypicture2.jpg" onload="pictureLoadCallback(this)">

[...]

<script>
    var pictureLoadCallback = function(el) {
        var next = el.nextElementSibling;
        if(next.tagName === "IMG") {
            next.src = next.getAttribute('data-src');
        }
    }
</script>

或使用 javascript 事件侦听器:

<img src="mypicture.jpg" class="imgLoad">
<img data-src="mypicture2.jpg" class="imgLoad">

[...]

<script>
    var pictureLoadCallback = function(e) {
        var next = e.currentTarget.nextElementSibling;
        if(next.tagName === "IMG") {
            next.src = next.getAttribute('data-src');
        }
    }
    document.querySelector('.imgLoad').forEach(function(img){
      img.addEventListener('load', pictureLoadCallback);
    });
</script>