slideImg函数
var timer = null,
index = 0,
pics = byId("banner").getElementsByTagName("div"),
dots = byId("dots").getElementsByTagName("span"),
size = pics.length,
prev = byId("prev"),
next = byId("next"),
menuItems = byId("menu-content").getElementsByTagName("div"),
subMenu = byId("sub-menu"),
subItems = subMenu.getElementsByClassName("inner-box");
function byId(id){
return typeof(id)==="string"?document.getElementById(id):id;
}
// 清除定时器,停止自动播放
function stopAutoPlay(){
if(timer){
clearInterval(timer);
}
}
// 图片自动轮播
function startAutoPlay(){
timer = setInterval(function(){
index++;
if(index >= size){
index = 0;
}
changeImg();
},3000)
}
function changeImg(){
for(var i=0,len=dots.length;i<len;i++){
dots[i].className = "";
pics[i].style.display = "none";
}
dots[index].className = "active";
pics[index].style.display = "block";
}
function slideImg(){
var main = byId("main");
var banner = byId("banner");
var menuContent = byId("menu-content");
main.onmouseover = function(){
stopAutoPlay();
}
main.onmouseout = function(){
startAutoPlay();
}
main.onmouseout();
// 点击导航切换
for(var i=0,len=dots.length;i<len;i++){
dots[i].id = i;
dots[i].onclick = function(){
index = this.id;
changeImg();
}
}
// 下一张
next.onclick = function(){
index++;
if(index>=size) index=0;
changeImg();
}
// 上一张
prev.onclick = function(){
index--;
if(index<0) index=size-1;
changeImg();
}
// 菜单
for(var m=0,mlen=menuItems.length;m<mlen;m++){
menuItems[m].setAttribute("data-index",m);
menuItems[m].onmouseover = function(){
subMenu.className = "sub-menu";
var idx = this.getAttribute("data-index");
for(var j=0,jlen=subItems.length;j<jlen;j++){
subItems[j].style.display = 'none';
menuItems[j].style.background = "none";
}
subItems[idx].style.display = "block";
menuItems[idx].style.background = "rgba(0,0,0,0.1)";
}
}
subMenu.onmouseover = function(){
this.className = "sub-menu";
}
subMenu.onmouseout = function(){
this.className = "sub-menu hide";
}
menuContent.onmouseout = function(){
subMenu.className = "sub-menu hide";
}
}
slideImg();
这是老师js部分的源代码,为什么要用slideImg()函数把相关代码包起来,不用slideImg包起来为什么代码就不能运行?
正在回答
相关代码封装起来,会使代码在后期维护起来更加方便,将一些功能代码封装,也是为了方便后期能更好的调用代码,降低代码的冗杂。你也可以将slideImg去掉,如果去掉的话,相应的大括号,以及调用这个函数的语句都要去掉。
祝学习愉快!
- 参与学习 1887 人
- 提交作业 4643 份
- 解答问题 5760 个
有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星