【发布时间】:2010-01-08 17:48:50
【问题描述】:
我在 IE7、FF、Chrome、Safari 中测试代码,这个问题只出现在 Firefox 中。
我检查了该问题仅出现在 FF 3.5.x 中,而不出现在 FF 3.0.x 中。
我想制作一个总共有 10 张图片的图片动画。
目前,我使用以下代码:
for (var i=1;i<=10;i++){
img[i] = new Image();
img[i].src = "images/survey/share_f"+i+".jpg"
}
var cornerno = 0;
function imganimate(){
$("#surveyicon").attr("src",img[cornerno].src);
//some logic to change the cornerno
setTimeout("imganimate()",1000);
}
然后改变一个元素的src来循环遍历数组“img”。
但是,firefox 不断请求图像连续(我希望它只请求每个唯一图像一次)。
我该怎么办?
【问题讨论】:
-
连续是什么意思?它应该在代码运行时连续加载它们,但每个页面加载只加载一次,除非您在点击处理程序或计时器回调中有此代码。您可能想发布更多代码。
-
这个问题只有在火狐测试后才会出现。
-
问题——为什么你从不在 imganimate() 函数中增加cornerno?你永远不会移动到下一张图片。
-
你可能会忽略注释行 - “一些逻辑来改变cornerno”
-
等等,如果您要做的只是将#surveyicon 的 src 属性设置为当前图像的 src 属性,为什么还要创建图像数组呢?设置两个变量,一个用于路径,一个用于文件扩展名,而不是分配将所有图像放在一个数组中,然后执行
.attr("src", path + i + file_ext),不是更有意义吗?实际上,一个更好的主意是看看您是否可以以某种方式将“src”设置为引用数组中的实际图像,而不仅仅是服务器上文件的相对路径。
标签: javascript jquery