前端之各种情况下实现的轮播图
1.样式一
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{margin: 0;padding: 0;} ul,ol{ list-style: none;} .wrapper{ width: 580px; height: 240px; margin: 100px auto; /*overflow: hidden;*/ position: relative; } .wrapper ul{ width: 100%; height: 240px; overflow: hidden; } ol{ position: absolute; right: 0; bottom: 10px; width: 190px; } ol li{ float: left; width: 20px; height: 20px; margin: 0 5px; text-align: center; border-radius: 50%; cursor: pointer; background-color: #abc; } ol li.current{ background-color: pink; } </style> <script type="text/javascript" src="./jquery-3.3.1.js"></script> <script type="text/javascript"> $(function () { // 根据ol下li的索引号,匹配ul下相对应li的索引号 $(".wrapper ol li").mouseenter(function () { $(this).addClass("current").siblings('li').removeClass("current"); console.log($(this).index()); $(".wrapper ul li").eq($(this).index()).stop().fadeIn("fast").siblings('li').stop().fadeOut(); }); }); </script> </head> <body> <div class="wrapper"> <ul> <li><img src="./1.jpg" alt=""/></li> <li><img src="./2.jpg" alt=""/></li> <li><img src="./3.jpg" alt=""/></li> <li><img src="./4.jpg" alt=""/></li> <li><img src="./5.jpg" alt=""/></li> </ul> <ol> <li class="current">1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ol> </div> </body> </html>
2.无缝轮播
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ padding: 0; margin: 0; } ul{ list-style: none; } .slider-list{ width: 580px; overflow: hidden; margin: 100px auto; position: relative; } .slider-list .slider-wrapper{ height: 470px; } .slider-wrapper ul{ height: 100%; position: relative; } .slider-wrapper ul li{ float: left; width: 590px; height: 470px; } .slider-wrapper ul li a{ display: block; width: 100%; height: 100%; } .focus-img{ width: 590px; height: 470px; } button{ position: absolute; width: 24px; height: 40px; top: 50%; line-height: 40px; text-align: center; background-color: rgba(0,0,0,.2); color: white; font-size: 30px; border: 0; outline: none; cursor: pointer; z-index: 99; } button.next{ right: 0; } button.prev{ left: 0; } .slider-index{ position: absolute; bottom: 10px; left:250px; z-index: 2; } .slider-index span{ display: inline-block; width: 10px; height: 10px; border: 2px solid red; border-radius: 50%; } .slider-index span.active{ background-color: orange; } </style> </head> <body> <div class="slider-list"> <div class="slider-wrapper"> <ul> </ul> </div> <button class="next">></button> <button class="prev"><</button> <div class="slider-index"> <span class="active"></span> <span></span> <span></span> <span></span> <span></span> </div> </div> <script type="text/javascript" src="jquery-3.3.1.js"></script> <script type="text/javascript"> $(function(){ // 1.获取本地图片数据 590*470 var imgArr = ['./5.jpg','./1.jpg','./2.jpg','./3.jpg','./4.jpg','./5.jpg','./1.jpg']; // 获取图片的宽度 var imgWidth = 590; var len = $('span').length; // 2.遍历数据 将图片添加到ul中 for(let i = 0;i < imgArr.length;i++){ $(`<li> <a href="javascript:;"> <img src=${imgArr[i]} title=${i}> </a> </li>`).appendTo('.slider-wrapper ul').addClass('slider-item'); } // 设置图片的类名 // $('img').addClass('focus-img'); // // 设置父盒子的总宽度 $('.slider-wrapper').width(imgArr.length*imgWidth); $('.slider-wrapper ul').width(imgArr.length*imgWidth); // // 初始化 // // 默认显示第一张图片 init(); function init(){ $("ul").css("left",-imgWidth); } // // 下一张 $('button.next').click(function(event) { next(); }); // // 控制图片显示第几张 var count = 1; function next(){ console.log(count) if (count ==len+1) { // alert(3); count = 2; $("ul").css("left",-imgWidth); }else{ // alert(5); count++; } $('.slider-wrapper ul').stop().animate({left:-count*imgWidth},200); // 控制轮播图索引改变颜色 if (count>len) { $("span").eq(0).addClass("active").siblings("span").removeClass("active"); }else{ $("span").eq(count-1).addClass("active").siblings("span").removeClass("active"); } } // 给小圆圈添加点击事件 $('span').click(function(){ //自己的样式 $(this).addClass("active").siblings("span").removeClass("active"); count = $(this).index()+1; $("ul").animate({"left":-count*imgWidth},200); }) // setInterval(next,2000); }) </script> </body> </html>
3.基于bootstrapt下的轮播图
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<title>Bootstrap 101 Template</title>
<!-- Bootstrap -->
<link href="bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet">
<!-- 必须定义一个盒子 -->
<div class="container">
<!-- 设置栅格 -->
<div class="col-lg-12">
<div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
<!-- Indicators -->
<ol class="carousel-indicators">
<li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
<li data-target="#carousel-example-generic" data-slide-to="1"></li>
<li data-target="#carousel-example-generic" data-slide-to="2"></li>
<li data-target="#carousel-example-generic" data-slide-to="3"></li>
<li data-target="#carousel-example-generic" data-slide-to="4"></li>
</ol>
<!-- Wrapper for slides -->
<div class="carousel-inner" role="listbox">
<div class="item active">
<img src="./1.jpg" alt="...">
<div class="carousel-caption">
</div>
</div>
<div class="item">
<img src="./2.jpg" alt="...">
<div class="carousel-caption">
</div>
</div>
<div class="item">
<img src="./3.jpg" alt="...">
<div class="carousel-caption">
</div>
</div>
<div class="item">
<img src="./4.jpg" alt="...">
<div class="carousel-caption">
</div>
</div>
<div class="item">
<img src="./5.jpg" alt="...">
<div class="carousel-caption">
</div>
</div>
</div>
<!-- Controls -->
<a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
</div>
</div>
</div>
</div>
</head>
<body>
<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</body>
</html>
4.基于swiper下的轮播图
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="swiper-4.3.2/dist/css/swiper.min.css"> <style type="text/css"> img { width: 600px; height: 300px; } </style> </head> <body> <div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide"><img src="./1.jpg" alt="..."></div> <div class="swiper-slide"><img src="./2.jpg" alt="..."></div> <div class="swiper-slide"><img src="./3.jpg" alt="..."></div> <div class="swiper-slide"><img src="./4.jpg" alt="..."></div> <div class="swiper-slide"><img src="./5.jpg" alt="..."></div> </div> <!-- 如果需要分页器 --> <div class="swiper-pagination"></div> <!-- 如果需要导航按钮 --> <div class="swiper-button-prev"></div> <div class="swiper-button-next"></div> <!-- 如果需要滚动条 --> <div class="swiper-scrollbar"></div> </div> <script src="swiper-4.3.2/dist/js/swiper.min.js"></script> <script language="javascript"> var mySwiper = new Swiper('.swiper-container',{ navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, on: { slideChange: function(){ if(this.isBeginning){ this.navigation.$prevEl.css('display','none'); }else{ this.navigation.$prevEl.css('display','block'); } }, }, }) </script> </body> </html>