<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title></title> <style type="text/css"> * { margin: 0; padding: 0; list-style: none; } .bannar { width: 1200px; height: 800px; margin: 0 auto; position: relative; overflow: hidden; } .imageList { width: 4800px; } .imageItem { float: left; } .imageItem>img { width: 1200px; height: 800px; } .carouselList { width: 200px; display: flex; justify-content: space-between; position: absolute; left: 50%; margin-left: -100px; bottom: 50px; } .carouselItem { display: inline-block; width: 30px; height: 30px; line-height: 30px; text-align: center; background-color: rgba(0, 0, 0, .5); color: #fff; border-radius: 50%; margin-right: 10px; cursor: pointer; } .current { background-color: #fff; color: #333; } .nextPage, .prevPage { position: absolute; width: 50px; height: 80px; line-height: 80px; text-align: center; background-color: rgba(0, 0, 0, .5); color: #fff; top: 50%; margin-top: -40px; cursor: pointer; } .nextPage { right: 50px; } .prevPage { left: 50px; } .clearfix:after { content: ""; clear: both; display: block; height: 0; } .box { width: 100px; height: 100px; background-color: red; position: absolute; top: 850px; left: 0; } </style> </head> <body> <div class="bannar"> <ul class="imageList clearfix"> <li class="imageItem"> <img src="images/xihu01.jpg" /> </li> <li class="imageItem"> <img src="images/xihu02.jpg" /> </li> <li class="imageItem"> <img src="images/xihu03.jpg" /> </li> <li class="imageItem"> <img src="images/xihu01.jpg" /> </li> </ul> <ul class="carouselList"> <li class="carouselItem current">1</li> <li class="carouselItem">2</li> <li class="carouselItem">3</li> </ul> <span class="nextPage">></span> <span class="prevPage"><</span> </div> <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript"> // 元素获取 var bannar = document.querySelector(‘.bannar‘), imageList = document.querySelector(‘.imageList‘), imageItem = document.querySelectorAll(‘.imageItem‘), carouselList = document.querySelector(‘.carouselList‘), carouselItem = document.querySelectorAll(‘.carouselItem‘), nextPage = document.querySelector(‘.nextPage‘), prevPage = document.querySelector(‘.prevPage‘), imageList_ml = 0, // 显示第一张图片时,图片列表的marginLeft值 carousel_cur = 0; // 显示第一张图片时,轮播点的位置 // 切换下一张图片 function switch_next() { // 控制图片列表位置 if (imageList_ml === -3600) { imageList_ml = -1200; imageList.style.marginLeft = imageList_ml + 1200 + ‘px‘; } else { imageList_ml -= 1200; } $(imageList).animate({ ‘marginLeft‘: imageList_ml + ‘px‘ }); // 控制轮播点位置 if (carousel_cur === 2) { carousel_cur = 0; } else { carousel_cur++; } for (var i = 0; i < carouselItem.length; i++) { carouselItem[i].classList.remove(‘current‘); } carouselItem[carousel_cur].classList.add(‘current‘); } // 切换上一张图片 function switch_prev() { // 控制图片列表位置 if (imageList_ml === 0) { imageList_ml = -2400; imageList.style.marginLeft = imageList_ml - 1200 + ‘px‘; } else { imageList_ml += 1200; } $(imageList).animate({ ‘marginLeft‘: imageList_ml + ‘px‘ }); // 控制轮播点位置 if (carousel_cur === 0) { carousel_cur = 2; } else { carousel_cur--; } for (var i = 0; i < carouselItem.length; i++) { carouselItem[i].classList.remove(‘current‘); } carouselItem[carousel_cur].classList.add(‘current‘); } // 自动轮播,一秒向下切换一张图片 var autoSwitch_interval = setInterval(switch_next, 1000); // 点击左右箭头切换上一张下一张 nextPage.onclick = switch_next; prevPage.onclick = switch_prev; // 鼠标移入停止自动轮播 bannar.onmouseenter = function() { clearInterval(autoSwitch_interval); } // 鼠标移出继续自动轮播 bannar.onmouseleave = function() { autoSwitch_interval = setInterval(switch_next, 1000); } // 点击页数切换图片 for (let i = 0; i < carouselItem.length; i++) { carouselItem[i].onclick = function() { carousel_cur = i; imageList_ml = -1200 * i; $(imageList).animate({ ‘marginLeft‘: imageList_ml + ‘px‘ }); for (var j = 0; j < carouselItem.length; j++) { carouselItem[j].classList.remove(‘current‘); } carouselItem[carousel_cur].classList.add(‘current‘); } } </script> </body> </html>