关于 js 的6-2作业问题
来源:6-1 案例总结
qjt6317800
2017-08-25 17:52:16
老师,您好!
我的js 代码里面自动轮播图片问题不大,就是用鼠标点击事件时,总感觉哪里不对劲,点击后也没有立即跳转正确的图片不说,还导致点击后,图片依旧自动轮播,有点乱乱的赶脚,你能帮我看看是哪里不对,并把js 代码修改一下好吗?我困惑了好久,新手莫要见怪1!1
<!DOCTYPE html> <html> <head> <title>6-2作业</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="css/style.css"> </head> <body> <div class="main" id="main"> <!-- 导航 --> <div class="nav" id="nav"> <ul> <li><a href="">首页</a></li> <li><a href="">点击看看</a></li> <li><a href="">会自动的</a></li> <li><a href="">我的网站</a></li> </ul> </div> <!-- 图片 --> <div class="banner" id="banner"> <a href=""> <div class="picture no1 no-active"></div> </a> <a href=""> <div class="picture no2"></div> </a> <a href=""> <div class="picture no3"></div> </a> <a href=""> <div class="picture no4"></div> </a> </div> </div> <script type="text/javascript" src="js/script.js"></script> </body> </html>
css code:
*{ margin:0; padding:0; } body{ font-family:"微软雅黑"; color:#fff; } a:link,a:visited{ text-decoration:none; } .main{ width:1200px; height:490px; margin:30px auto; overflow:hidden; position:relative; clear:left; } .nav{ width:100%; height:30px; position:absolute; left:0; top:0; /*background-color: green;*/ } ul{ list-style:none; float:left; width:100%; } ul li{ float:left; width:25%; text-align:center; line-height: 30px; } .banner{ width:100%; height:460px; position:absolute; top:30px; left:0px; background-size:cover; } .picture{ width:100%; height: 460px; position: absolute; top:0; left:0; display: none; } .no-active{ display:block; } .no1{ background-image:url("../img/1.jpg"); } .no2{ background-image:url("../img/3.jpg"); } .no3{ background-image:url("../img/4.jpg"); } .no4{ background-image:url("../img/5.jpg"); }
js code:
//封装一个代替getElementById()的方法 function byId(id){ return typeof(id)==="string"? document.getElementById(id):id; } var index=0, timer=null, nav=byId("nav"), pics=nav.getElementsByTagName("li"), banner=byId("banner"), picture=banner.getElementsByClassName("picture"), div=banner.getElementsByTagName("div"); len=pics.length; // console.log(len); function slideImg(){ var main=byId("main"); //鼠标滑过清除定时器,离开继续 main.onmouseover=function(){ //鼠标滑过清除定时器 if(timer) clearInterval(timer); } //鼠标离开,开始自动轮播图片 main.onmouseout=function(){ timer=setInterval(function(){ index++; if(index>=len){ index=0; } // console.log(index); changeImg(); },1000); } main.onmouseout(); //老师,你好,就是这里,我不知道哪里错了,导致点击后,还是会自动轮播图片, //主要是和下边联系起来,就有点糊涂了,老师批改作业时,帮忙解决一下,谢谢您。 for(var j=0;j<len;j++){ pics[j].id=j; pics[j].onmousedown=function(){ index=this.id; console.log(index); changeImg(); } } } //切换图片函数 function changeImg(){ // 遍历banner下的所有div,并将div隐藏 for(var i=0;i<len;i++){ picture[i].style.display="none"; pics[i].style.background="none"; } picture[index].style.display="block"; pics[index].style.background="#ffcc00"; } slideImg();
1回答
a标签空链接的时候,点击会使页面重新加载,所以建议修改为