加载程序后的 Javascript 图像

标签 javascript image for-loop onload

所以我正在编写一个 javascript 来替换默认图像,该默认图像填充了我网页上大量图像的空间。这样,页面加载速度就会快得多。 (脚本是通过主体加载启动的)所有默认图像都具有相同的类,并且它们的 ID 等于它们的文件名。

function imgPostLoad(totalpics, placeholder) {
    var img = document.createElement('img');
    for (var i = 0; i < totalpics; i++) {
        var picture = document.getElementsByClassName(placeholder)[i];
        img.onload = function (evt) {
            picture.src = this.src;
            picture.width = this.width;
            picture.height = this.height;
        }
        img.src = "/img/" + picture.getAttribute("id") + ".jpg";
    }
}

它有效,但仅适用于数组中的最后一张图像。其余图像保持不变。有什么问题吗?

最佳答案

你可以简单地做:

function imgPostLoad(totalpics, placeholder) {
    for (var i = 0; i < totalpics; i++) {
        var picture = document.getElementsByClassName(placeholder)[i];
        picture.src = "/img/" + picture.getAttribute("id") + ".jpg";
    }
}

您的代码中的问题是,在加载 img 时,picture 是另一个变量。

关于加载程序后的 Javascript 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20885570/

相关文章:

javascript - 来自 Node.js 的 API 调用

javascript - 我们如何将验证应用于 WordPress 插件的任何字段

java - 如何在图像中设置 DPI 信息?

c - 为什么代码会进入无限循环

javascript - 排序问题 - 在 Javascript 中索引多维数组

javascript - $ 未定义 - 将 jQuery 与 electron.js 一起使用

javascript: 能否获取原图的宽度和高度?

javascript - Vue.js:将变量连接到图像 URL

javascript - 更高效的 JS 大小写交换

java - Java对二维数组求和的方法