页面展示图
html代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!</title> <link rel="icon" href="//www.jd.com/favicon.ico"> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script> <link rel="stylesheet" href="c1.css"> </head> <body> <div class="c1"> <div class="c3"> <ul class="lbt"> <li class="i1"><img src="//img12.360buyimg.com/babel/s590x470_jfs/t1/141047/21/22177/187743/6184d79aE26884a79/c87eef19caa91023.jpg.webp" alt="" class=""></li> <li class="i2"><img src="//img14.360buyimg.com/pop/s590x470_jfs/t1/214532/12/2060/70920/6178b2fcE10944bdc/a9c90434eda2a97e.jpg.webp" alt="" class="hide"></li> <li class="i3"><img src="//img30.360buyimg.com/pop/s590x470_jfs/t1/220092/16/2545/44461/617e33d7E31901352/e3bd37d3ffbe90f7.jpg.webp" alt="" class="hide"></li> <li class="i4"><img src="//imgcps.jd.com/ling4/100014654958/54iG5qy-5aW954mp/5YWo5Zy65L2O6IezN-aKmA/p-5bd8253082acdd181d02fa28/d0bc4a5f/cr/s/q.jpg" alt="" class="hide"></li> <li class="i5"><img src="//img13.360buyimg.com/pop/s590x470_jfs/t1/223168/33/355/76562/617a70f5E3fb49ea0/025df96c80360d02.jpg.webp" alt="" class="hide"></li> <li class="i6"><img src="//img14.360buyimg.com/pop/s590x470_jfs/t1/219284/15/3105/58373/6183cbbeE44e46e89/d781541f3578cbf3.jpg.webp" alt="" class="hide"></li> </ul> <ul class="button"> <li class="left_btn"><span> < </span></li> <li class="right_btn"><span> > </span></li> </ul> <ul class="index"> <li><input type="radio" class="l1" name="nbsp" value="0" checked></li> <li><input type="radio" class="l2" name="nbsp" value="1"></li> <li><input type="radio" class="l3" name="nbsp" value="2"></li> <li><input type="radio" class="l4" name="nbsp" value="3"></li> <li><input type="radio" class="l5" name="nbsp" value="4"></li> <li><input type="radio" class="l6" name="nbsp" value="5"></li> </ul> </div> </div> <script src="j1.js"></script> </body> </html>
css代码
* { margin: 0; padding: 0; } .img { width: 590px; height: 470px; } .c1 { width: 590px; height: 470px; background-color: rgba(0, 0, 0, .15); margin: 100px auto; } li { list-style: none; } img { cursor: pointer; } .c3 { position: relative; } .c3 .lbt li { position: absolute; top: 0; left: 0; } .c3 .button li { position: absolute; top: 217px; width: 25px; height: 35px; background-color: rgba(0, 0, 0, .15); text-align: center; line-height: 35px; cursor: pointer; font-size: 20px; } .left_btn { left: 0; border-top-right-radius: 18px; border-bottom-right-radius: 18px; } .left_btn span { margin-right: 4px; } .right_btn { right: 0; border-top-left-radius: 18px; border-bottom-left-radius: 18px; } .right_btn span { margin-left: 4px; } .c3 .index li input { position: absolute; top: 430px; } .l1 { left: 10px; } .l2 { left: 25px; } .l3 { left: 40px; } .l4 { left: 55px; } .l5 { left: 70px; } .l6 { left: 85px; } .hide { display: none; }
js代码
// 自动轮播 function zdlb() { $(".lbt li").each(function () { if ($(this).children("img").attr("class") !== "hide") { res = $(this).index(); // console.log(res); } }); if (res !== 5) { // ***********************使用了fadeIn后,标签display属性为inline,所以要设置回none*********************** $(".lbt li").eq(res + 1).siblings().children("img").addClass("hide").css("display", "none"); $(".lbt li").eq(res + 1).children("img").fadeIn(1000).removeClass("hide"); $(".index li").eq(res + 1).children("input").prop("checked", true); $(".index li").eq(res + 1).siblings().children().prop("checked", false); } else { $(".lbt li").eq(0).siblings().children("img").addClass("hide").css("display", "none"); $(".lbt li").eq(0).children("img").fadeIn(1000).removeClass("hide"); $(".index li").eq(0).children("input").prop("checked", true); $(".index li").eq(0).siblings().children().prop("checked", false); } } var ID; function begin() { if (ID === undefined) { ID = setInterval(zdlb, 3000); } } function end() { clearInterval(ID); ID = undefined; } begin(); // 鼠标悬浮事件 $(".c3").hover(mouseover, mouseout); function mouseover() { end(); $(".index li input").each(function () { $(this).click(function () { let index = $(this).val(); $(".lbt li").eq(index).siblings().children("img").addClass("hide").css("display", "none"); $(".lbt li").eq(index).children("img").fadeIn(1000).removeClass("hide"); }) }) } function mouseout() { begin(); } // 右侧按钮 $(".right_btn").click(function () { zdlb(); }) // 左侧按钮 $(".left_btn").click(function () { $(".lbt li").each(function () { if ($(this).children("img").attr("class") !== "hide") { res = $(this).index(); } }); if (res !== 0) { // ***********************使用了fadeIn后,标签display属性为inline,所以要设置回none*********************** $(".lbt li").eq(res - 1).siblings().children("img").addClass("hide").css("display", "none"); $(".lbt li").eq(res - 1).children("img").fadeIn(1000).removeClass("hide"); $(".index li").eq(res - 1).children("input").prop("checked", true); $(".index li").eq(res - 1).siblings().children().prop("checked", false); } else { $(".lbt li").eq(5).siblings().children("img").addClass("hide").css("display", "none"); $(".lbt li").eq(5).children("img").fadeIn(1000).removeClass("hide"); $(".index li").eq(5).children("input").prop("checked", true); $(".index li").eq(5).siblings().children().prop("checked", false); } })
Readme
自动轮播: 标签初始化,img标签除了第一个没有hide属性外,其余五个都有hide属性; 先定义一个zdlb函数,找到没有hide属性的img标签的index值; 然后让其下一个img标签的其余五个img标签加上hide属性,再把这个img标签加上fadeIn属性,并移除hide属性; 做一个索引判断,当到了最后一个标签时,索引初始化为为0; 左下侧小圆点是用input标签实现,根据图片索引的不同,input标签索引也随之变动,且变动后设置默认选中; 即:checked,这样就能实现图片的自动轮播且小圆点也跟着变化; 定义一个定时器,3秒执行一次zdlb函数; 当鼠标放置于轮播图内时,取消定时器; 当鼠标放置于轮播图外时,继续执行定时器; 右侧按钮: 其执行思路与zdlb函数一致 左侧按钮: 与zdlb函数相似,只不过把判断的索引及初始化值等修改一下即可; 左下侧小圆点点击: 因为点击次按钮也属于鼠标悬浮事件,即悬浮到轮播图内,所以点击事件直接在取消自动轮播函数内实现即可; 拿到input框点击后的value,然后根据value,根据轮播图index将对应图片显示,其它图片隐藏;