3-4图片自动轮播
老师
function changeImg(){
pics[index].style.display="block";
}按照视频中,应该在鼠标触碰离开后,图片能自动轮播到最后一张图然后停止。然而我测试时图片一直停留在第一张图,无法实现轮播。为什么?
<!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 份
- 解答问题 36713 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星