js加载图片

时间:2013-03-28 08:58:59

标签: javascript

我有这段代码

    var a = new Image();
    a.src = objects.a.image;

    var b = new Image();
    b.src = objects.b.image;

    var x = new Image();
    x.src = objects.x.image;

我有大约10张这样的图片,有没有更好的方法将它加载到变量中?

4 个答案:

答案 0 :(得分:1)

这应该有效

for(var i in objects)
{
    if(objects[i].image)
    {
        var oImage = new Image();
        oImage.src = objects[i].image;
        // if you need the Image object you can store it somewhere
        objects[i].oImgObject = oImage;
     }
}

答案 1 :(得分:0)

假设objects只包含图片,请尝试以下操作:

var imageList = [];
for (var i in objects) {
    var obj = objects[i];
    var img = new Image();
    img.src = obj.image;
    imageList.push(img);
}

答案 2 :(得分:0)

您通常会使用数组来存储图像。

例如:

var arr = [];
for (var c='a'.charCodeAt(0); c<='x'.charCodeAt(0); c++) {
     var img = new Image();
     img.src = objects[String.fromCharCode(c)].image;
     arr.push(img);
}

如果您确实需要将它们作为变量添加到全局上下文中,您可以这样做:

for (var c='a'.charCodeAt(0); c<='x'.charCodeAt(0); c++) {
     var img = new Image();
     var name = String.fromCharCode(c);
     img.src = objects[name].image;
     window[name] = img; // better use somthing's else than window...
}

请注意,根据实际的objects,可能会有一个更直接的解决方案。

答案 3 :(得分:0)

您可以遍历对象对象的属性。每次迭代创建一个新图像,为其提供对象属性的来源。然后将其添加到数组中:

Demo

var arrayOfImg = [];

for(var propt in objects){
    var image = new Image();
    image.src = objects[propt].image;
    arrayOfImg.push(image)
}

console.log(arrayOfImg);