关for遍历隐藏和显示图片问题

关for遍历隐藏和显示图片问题


/*全局变量*/

var timer=null,

index=0,

pics=byId("banner").getElementsByTagName("div"),

dots=byId("dots").getElementsByTagName("span"),

size=pics.length;

//console.log(byId("main"));


function slideImg(){

var main=byId("main");

//鼠标滑过触发的事件

main.onmouseover=function(){

}

//鼠标离开时触发的事件

main.onmouseout=function(){

timer=setInterval(function(){

//index变量作为 pics所获取到的 div 数量所存放的容器

index++;

if(index>=size){

index=0;

}

//切换图片

changeImg();

},3000)

}

}


function changeImg(){

//下面的for循环中条件 len=dots.length;i<len;i++   为啥 遍历 dots 点击按钮 div 中的span  获取到的却是 pics变量值中的  banner 中的div呢? 写成dots 还是pics 效果似乎一样

for(var i=0,len=dots.length;i<len;i++){

pics[i].style.display="none";

}http://img1.sycdn.imooc.com/climg//596b48ed000156ec05560061.jpg

pics[index].style.display="block";

}


slideImg();


正在回答 回答被采纳积分+1

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

3回答
怎么都被占用了呢 2017-07-17 17:37:56

for(var i=0,len=dots.length;i<len;i++){

pics[i].style.display="none";

}

你的这一步就是在遍历banner 中的div,无论是 len=dots.length;i<len;i++ 还是len=pics.length;i<len;i++,都只是决定了循环的次数而已,循环体是作用在pics中的

小王子抓猫咪 2017-07-17 17:30:47

哎,你应该认真检查一下你的dots和你的pics里面都是些什么节点。

另外,你的截图没毛病,就是先隐藏所有的图片,然后就显示指定那个索引的那张图片。

小王子抓猫咪 2017-07-17 12:23:41

什么叫 视乎一样

pics是图片数组

dots是圆点数组

里面存的DOM节点都不一样

  • 提问者 会飞的铁蛋 #1
    就因为是两个不同数组, 我用 len=dots.length;i<len;i++ 或者改成 len=pics.length;i<len;i++,实际效果都作用在pics中,跟我在上面放的图片一样
    2017-07-17 16:01:52
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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