0

我正在使用此 JavaScript 在我的网站上成功预加载图像:

loveHover = new Image();
loveHover.src = "http://mypage.com/images/love-hover.png";

有没有一种简单的好方法可以将这个东西打包成一个函数?就像是:

function preloadImage(image) {
    var image = new Image();
    var path = "http://mypage.com/images/";
    image.src = path + image;
}
4

3 回答 3

3
["love-hover.jpg", "like-hover.jpg", "hate-hover.jpg"].forEach(function(img)
{
    new Image().src = "http://mypage.com/" + img;
});

要使其在早于 9 的 IE 版本中工作,请参阅Array.forEach 兼容性部分以获取说明。

于 2011-03-08T16:30:55.433 回答
2

那么函数的独特部分将是 src (链接到图像)。所以提出这个论点。

function preloadImage(src) {
    var image = new Image();
    image.src = src;
}

然后,如果您有多个 url 将它们存储在一个数组中:

var imageSrcs = [
    "http://mypage.com/images/love-hover.png#",
    "http://mypage.com/images/love-hover2.png",
    "http://mypage.com/images/love-hover3.png"
];

并使用循环预加载图像:

for (var i = 0; i < imageSrcs.lengthl i++)
    preloadImage(imageSrcs[i]);
于 2011-03-08T16:16:34.673 回答
1

您是否尝试过完全不使用 javascript?

http://perishablepress.com/press/2008/06/14/a-way-to-preload-images-without-javascript-that-is-so-much-better/

于 2011-03-08T16:12:25.860 回答