gpt4 book ai didi

javascript - 使用 javascript 和 for 循环在页面加载后预加载图像

转载 作者:行者123 更新时间:2023-11-29 10:50:56 25 4
gpt4 key购买 nike

我目前正在创建一个网页照片库。我有大量图片想用 Javascript 在页面加载后预加载。与其在我的数组中有一个非常非常长的 HTML 链接列表,不如使用 for 循环?请看我下面的代码。非常感谢任何关于我在 for 循环中做错了什么的有用见解!谢谢!!

<script type="text/javascript">
function preloader() {
var images = new Array()
function preload() {
for (i = 0; i < preload.arguments.length; i++) {
images[i] = new Image()
images[i].src = preload.arguments[i]
}
}
preload(
var i=1;
"http://example.com/images/gallery/elephants-" + for (i=1;i<=5;i++) {document.write(i);} + ".jpg",
"http://example.com/images/gallery/penguins-" + for (i=1;i<=2;i++) {document.write(i);} + ".png"
)
}

function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
addLoadEvent(preloader);
</script>

我遇到问题的部分是 preload() 部分中的 for 循环。 preload() 部分应该输出/执行此操作:

preload(
"http://example.com/images/gallery/elephants-1.jpg",
"http://example.com/images/gallery/elephants-2.jpg",
"http://example.com/images/gallery/elephants-3.jpg",
"http://example.com/images/gallery/elephants-4.jpg",
"http://example.com/images/gallery/elephants-5.jpg",
"http://example.com/images/gallery/penguins-1.png",
"http://example.com/images/gallery/penguins-2.png"
)

最佳答案

您不能将字符串和循环连接在一起。您必须使用循环和 push 构建一个字符串数组方法:

var i, urls = [];
for(i = 1; i <= 5; i++)
urls.push('http://example.com/images/gallery/elephants-' + i + '.jpg');
for(i = 1; i <= 2; i++)
urls.push('http://example.com/images/gallery/penguins-' + i + '.jpg');

然后使用apply调用预加载函数并将该数组作为参数传递:

preload.apply(null, urls);

所以你的整个预加载器函数变成了:

function preloader() {
var images = new Array()
function preload() {
for (i = 0; i < preload.arguments.length; i++) {
images[i] = new Image()
images[i].src = preload.arguments[i]
}
}

var i, urls = [];
for(i = 1; i <= 5; i++)
urls.push('http://example.com/images/gallery/elephants-' + i + '.jpg');
for(i = 1; i <= 2; i++)
urls.push('http://example.com/images/gallery/penguins-' + i + '.jpg');

preload.apply(null, urls);
}

关于javascript - 使用 javascript 和 for 循环在页面加载后预加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10467608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com