javascript - 设置加载时间过长时交换图像的条件

标签 javascript image

我想设定一个条件,当图像加载时间超过 2 秒时,将该图像与另一图像交换。现在,我有一个 .on('error') 函数来检查图像 url,如果 url 错误,则交换该图像。但是,如果图像加载时间过长怎么办?当某些图像加载时间超过 2 秒时,我可以使用回调吗?

        $('img').on('load', function() {
          //do things here
    })
      .on('error', function() {
        $(this).parent().css('background-image', 'url("/broken-image")');
        $(this).parent().addClass('img-not-found');
      })
      .each(function() {
        if(this.complete) {
          console.log('completed here');
        }else {
        $(this).parent().css('background-image', 'url("/broken-image")');
        $(this).parent().addClass('img-not-found');
        }
    });

最佳答案

您可以让它工作 - 使用图像的 onload 函数来确定图像实际上已完成加载:

var imageElement = document.getElementById("myImage");
var isImageLoaded = false;

imageElement.onload = function() {
    isImageLoaded = true;
}

setTimeout(function() {
    if (isImageLoaded === false) {
        //2 seconds passed, no dice on the image!
    }
}, 2000);

关于javascript - 设置加载时间过长时交换图像的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40185160/

相关文章:

java - 图像上传 Servlet 在 Chrome 中不工作,但在其他浏览器中工作

php - 我在使用 JavaScript 设置图像时遇到问题

javascript - 如何在Vuejs中查看同一数组中的不同键

javascript - 选中复选框时隐藏表格行

html - 在 <a> 标签内调整图像大小

Swift - 图像不显示

java - 如何使用java识别图像中的字符?

javascript - 如何在div标签中迭代input标签并根据inputdata显示多个input标签

javascript - JS如何更新列表项

javascript - 单击 <a href ="#divID"> 后防止浏览器垂直滚动