3-4图片自动轮播
老师
function changeImg(){
pics[index].style.display="block";
}按照视频中,应该在鼠标触碰离开后,图片能自动轮播到最后一张图然后停止。然而我测试时图片一直停留在第一张图,无法实现轮播。为什么?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | <!DOCTYPE html> <html> <head> <meta charset= "UTF-8" > <title>b</title> <!-- <link rel= "stylesheet" type= "text/css" href= "css/styleb.css" > --> <style type= "text/css" > *{ margin: 0; padding: 0; } ul{ list-style: none; } body{ font-family: "微软雅黑" ; } .main,.banner,.banner-slide{ width: 1200px; height: 460px; } .main{ margin: 30px auto; position: relative; overflow: hidden; } .banner{overflow: hidden;} .banner-slide{display: none;} .slide1{ background-image: url( '../img/bg1.jpg' ); } .slide2{ background-image: url( '../img/bg2.jpg' ); } .slide3{ background-image: url( '../img/bg3.jpg' ); } .slide-active{display: block;} .button{ width: 40px; height: 80px; background:url( '../img/arrow.png' ) no-repeat center center; position: absolute; top: 50%; margin-top: -40px; left: 244px; } .next{ left: auto; right: 0; } .prev{ transform: rotate(180deg); } .button:hover{ background-color:gray; opacity: 0.8; filter: alpha(opacity=80); } .dots{ position: absolute; bottom: 24px; right: 20px; } .dots span{ width: 12px; height: 12px; border-radius: 50%; background:rgba(7,17,27,0.4); box-shadow: 0 0 0 2px rgba(255,255,255,0.8) inset; display: inline-block; margin-left: 8px; cursor: pointer; } span.active{ background:white; box-shadow: 0 0 0 2px rgba(7,17,27,0.4) inset; } </style> </head> <body> <div class= "main" id= "main" > <!-- 图片轮播 --> <div class= "banner" id= "banner" > <a href= "" ><div class= "banner-slide slide1 slide-active" ></div></a> <a href= "" ><div class= "banner-slide slide2" ></div></a> <a href= "" ><div class= "banner-slide slide3" ></div></a> </div> <!-- 按钮--> <a href= "javascript:void(0)" class= "button prev" ></a> <a href= "javascript:void(0)" class= "button next" ></a> <!-- 圆点 --> <div class= "dots" id= "dots" > <span class= "active" ></span> <span></span> <span></span> </div> </div> <script type= "text/javascript" > function byId(id) { return typeof (id)=== 'string' ?document.getElementById(id):id; } var main=byId( 'main' ), timer= null , index=0, len=byId( 'banner' ).getElementsByTagName( 'div' ).length, pics=byId( 'banner' ).getElementsByTagName( 'div' ); function picSlide(){ main.onmouseover= function (){ // 清除定时器 } main.onmouseout= function (){ setInterval( function (){ index++; if (index>=len) { index=0; } changeImg(); },2000) } } function changeImg(){ // for(var i=0;i<len;i++) // { // pics[i].style.display='none'; // } pics[index].style.display= "block" ; } picSlide(); </script> </body> </html> |
0
收起
正在回答
2回答
你好同学 , 因为你把如下代码注释了:
这样 ,当你轮播的时候 ,只会把当前的显示 ,而不会把其他的图片隐藏 , 因为当几张图片全部显示的时候 , 默认第一张在最上面 , 如下:
所以会一直显示第一张 . 把注释的加上即可 . 另外 , 建议在函数中自动调用图片轮播的事件 ,当页面打开时 ,默认进行图片切换 :
希望能够帮到你 , 祝学习愉快 ,望采纳 .
前端小白入门系列课程
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36712 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧