正在回答
同学你好, 已经使用window.onload函数包裹所有的代码, 就不需要在load函数下去执行bannerImg函数了,建议修改:
如果还有问题, 建议: 可以将你的HTML代码也粘贴过来, 便于准确的定位与解决问题
如果帮助到了你, 欢迎采纳!
祝学习愉快~~~~
window.onload = function (){
var index = 0,
nav = byId("nav").getElementsByTagName("span"),
img = byId("banner").getElementsByTagName("div"),
sec = document.getElementsByTagName("section")[0],
size = img.length,
time = null;
function byId(id){
return typeof(id) === "string" ? document.getElementById(id):id;
};
function addHandler(element,type,handler){
if(element.addEventListener){
element.addEventListener(type,handler);
}else if(element.attachEvent){
element.attachEvent("on"+type,handler);
}else{
element["on"+type] = handler;
}
};
//图片自动轮播
function startAutoplay(){
time = setInterval(function(){
index++;
if(index >= size){
index = 0;
};
changeImg();
},1000)
}
//停止图片自动轮播
function stopAutoplay(){
clearInterval(time);
}
//图片切换
function changeImg(){
for(var i = 0;i < size;i++){
nav[i].className = "";
img[i].style.display = "none";
}
nav[index].className = "active";
img[index].style.display = "block";
}
//导航切换图片
function navImg(){
for(var i = 0;i < size;i++){
nav[i].setAttribute("data-id",i)
addHandler(nav[i],"mousemove",function(){
index = this.getAttribute("data-id");
changeImg();
})
};
}
function bannerImg(){
startAutoplay();
navImg();
addHandler(sec,"mousemove",stopAutoplay);
addHandler(sec,"mouseout",startAutoplay);
};
addHandler(window,"load",bannerImg);
}
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星