我有这个横幅旋转器工作正常,除了一个问题......
这个旋转器首先通过该函数,当它到达“setTimeout”语句时,它会一次又一次地触发“循环”功能。
你们可能知道在Firefox中左下角有一个状态栏,表示“正在加载”或“等待domain.com ......”等等。
问题在于此;当您在Firefox中进入网站时,状态栏显示“已加载”并消失。然后在8秒后(setTimeout延迟),状态栏再次显示,并显示“从domain.com获取数据...”之类的内容。它不会消失。
此消息很可能是由setTimeout
代码引起的,该代码会一次又一次地触发函数cycle
。
有没有办法“解决”这个问题?
这可能也发生在其他浏览器中,但到目前为止我只在FF中测试过它。
function ban_rot(){
//First preload images
// counter
var i = 0;
// create object
imageObj = new Image();
// set image list
images = new Array();
images[0] = "../Graphics/adv/1.gif"
images[1] = "../Graphics/adv/2.jpg"
// start preloading
for (i = 0; i <= images.length; i++) {
imageObj.src = images[i];
}
///////////////////////
var links = new Array("http://www.link1.com", "http://www.link2.se");
var alts = new Array("alt1", "alt2");
var titles = new Array("title1", "title2");
var counter = 0;
var banner_div = document.getElementById("ban_rot");
cycle();
function cycle() {
if (counter == links.length) {
counter = 0;
}
else if (counter < links.length) {
banner_div.innerHTML = '<a href=\"' + links[counter] + '\"><img src=\"' + images[counter] + '\" border=\"1px\" style=\"border-color:#000;\" alt=\"' + alts[counter] + '\" title=\"' + titles[counter] + '\"></a>';
//increase counter
counter++;
}
setTimeout(cycle, 8000);
} //end cycle function
} //end ban_rot function
答案 0 :(得分:1)
浏览器显示加载指示符,因为您正在加载新图像。