图片轮播
秃头警告!!终于图片轮播用原生的JS又写出了一遍,真的麻烦
很多都没有封装,后续再说吧
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>图片轮播</title> <style type="text/css"> .wrap{width:1000px; margin:0 auto; height: 480px; overflow: hidden; position: relative;text-align: center;} li{list-style: none; display: inline-block; width:30px; height: 30px; border:1px solid red; text-align: center; line-height: 30px; background-color: orange; margin-left: 5px;} .num_list{position: absolute; bottom: 20px; left: 10%;} .img_continer img{display: none;} .img_continer .img_dis{display: inline-block;} .le, .ri{font-size: 100px; font-weight: bold; color:red; position: absolute;} .le{top:30%; left: 0;} .ri{top:30%; right:0;} </style> </head> <body> <div class="wrap"> <div class="img_continer"> <img src="imgs/big_5.jpg"> <img src="imgs/big_7.jpg"> <img src="imgs/big_8.jpg"> </div> <div class="num_list"> <ul></ul> </div> <div class="le_ri"> <span class="le"><</span> <span class="ri">></span> </div> </div> <script type="text/javascript"> //获取图片//获取数字,根据图片的个数增数字
img_listWrap = document.getElementsByClassName("img_list")[0];
img_list = img_listWrap.getElementsByTagName("img");
img_listLen = img_list.length;
var str=""
for(let i=0; i<img_listLen; i++){
str += "<li>" + (i+1) +"</li>"
}
num_list_ul = document.getElementsByClassName("num_list")[0].getElementsByTagName("ul")[0];
num_list_ul.innerHTML =str;
//获取数字的列表
num_list_li = num_list_ul.getElementsByTagName("li");
// 变量 去控制 显示图片的下标
current = 0;
img_list[current].setAttribute("class","img_show");
num_list_li[current].setAttribute("class","active")
//点击下标1 2 3 显示对应的图片
for(let i=0;i<num_list_li.length;i++){
num_list_li[i].onclick=function(){
current = i;
for(let j=0;j<num_list_li.length;j++){
if(i!=j){
img_list[j].setAttribute("class","");
num_list_li[j].setAttribute("class","")
}
}
img_list[i].setAttribute("class","img_show");
num_list_li[i].setAttribute("class","active")
}
}
//图片自动轮播
//为了方便,后期可以封装成一个函数
function let(){ for(let i=0; i<img_listLen;i++){ if(i!=current){ img_list[i].setAttribute("class",""); num_list_li[i].setAttribute("class","") } if(current>2){ current=0; } } } se = setInterval(function(){ current++; let(); img_list[current].setAttribute("class","img_show"); num_list_li[current].setAttribute("class","active") },2000) // 鼠标移动到图片上,图片轮播停止 for(let i=0;i<img_listLen;i++){ img_list[i].onmouseover = function(){ clearInterval(se); } img_list[i].onmouseout = function(){ se = setInterval(function(){ current++; let(); img_list[current].setAttribute("class","img_show"); num_list_li[current].setAttribute("class","active") },2000) } }
//左右两边的控制按钮 var leControl = document.getElementsByClassName("le")[0]; var riControl = document.getElementsByClassName("ri")[0]; leControl.onclick = function(){ current ++; lets(); img_list[current].setAttribute("class",'img_dis'); }; riControl.onclick = function(){ current ++; lets(); img_list[current].setAttribute("class",'img_dis'); }; </script> </body> </html>

浙公网安备 33010602011771号