slideImg函数

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包起来为什么代码就不能运行?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

相关代码封装起来,会使代码在后期维护起来更加方便,将一些功能代码封装,也是为了方便后期能更好的调用代码,降低代码的冗杂。你也可以将slideImg去掉,如果去掉的话,相应的大括号,以及调用这个函数的语句都要去掉。

祝学习愉快!

  • 将slideImg,大括号,和调用函数的语句去掉以后,,代码无法运行,为什么
    2017-07-17 19:32:41
  • 啊,可以了。。非常感谢
    2017-07-17 20:36:10
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
HTML5与CSS3实现动态网页 2018
  • 参与学习       1887    人
  • 提交作业       4643    份
  • 解答问题       5760    个

有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师