html+css+JavaScript实现轮播图(新手教程)
作者:互联网
易模仿芒果TV官网轮播图
目录
轮播图分析:
1、轮播图实现的功能
自动滚动图片。
触碰圆点按钮,按钮亮起;点击圆点按钮显示对应图片,按钮亮起。
触碰错左右按钮,按钮变色;点击左右按钮,图片左右轮播,并且图片对应的圆点按钮亮起。
2、图片叠加原理
轮播图基本上都是将图片插在<ul>标签里,不加任何css会以默认排列方式排列,如下图。
我们需要将所有图片叠加在一起,然后让它们按一定时间移动。
html页面布局:
<div class="banner" > <div class="img-wrap"> <ul> <li class="item" style="display: block"> <a href="https://www.mgtv.com/b/328169/5364726.html"><img src="img/综艺1.jpg" alt="" class="lunbo"></a> </li> <li class="item"> <a href="https://www.mgtv.com/b/328606/5354871.html"><img src="img/综艺2.jpg" alt="" class="lunbo"></a> </li> <li class="item"> <a href="https://www.mgtv.com/b/328308/5376308.html"><img src="img/综艺3.jpg" alt=""class="lunbo"></a> </li> <li class="item"> <a href="https://www.mgtv.com/b/328329/5345359.html"><img src="img/综艺4.jpg" alt="" class="lunbo"></a> </li> <li class="item"> <a href="https://www.mgtv.com/b/327991/5377004.html"><img src="img/综艺5.jpg" alt="" class="lunbo"></a> </li> </ul> </div> <div class="lr-tab"> <div class="left btn"></div> <div class="right btn"></div> </div> <div class="tab-btn"> <ul> <li class="btn"></li> <li class="btn"></li> <li class="btn"></li> <li class="btn"></li> <li class="btn"></li> </ul> </div> </div>
CSS修饰:
.banner{ position: relative;/*相对定位 给绝对定位位置参考*/ width: 100%; height: 300px; float: left; } .banner .item{ display: none;/*隐藏元素*/ position: absolute;/* 绝对定位*/ width: 100%; height: 300px; top: 0; left: 0; } ul{ list-style-type: none;/*清除默认列表样式 ....*/ margin: 0; padding: 0;/*内外编剧清除*/ } .lunbo{ width: 100%; height: 300px; } /*左右按钮的属性设置*/ .lr-tab .btn{ position: absolute; top: 120px; width: 41px; height: 69px; background: url("img/8a.png"); } .lr-tab .left{ left: 0px; background-position-x: -83px; } .lr-tab .right{ right: 0px; background-position-x: -125px; } /*左右按钮触碰事件*/ .lr-tab .left:hover{ background-position-x: 0px; } .lr-tab .right:hover{ background-position-x: -41px; } /*圆形按钮属性设定*/ .tab-btn{ position: absolute; right: 40px; bottom: 20px; width: 120px; height: 30px; top: 270px; } .tab-btn .btn{ float: left; width: 6px; height: 6px; background: #868686; border: 2px solid #c3c3c3;/*边框*/ margin-left: 10px; border-radius: 50%; } /*圆形按钮触碰事件*/ .tab-btn .btn:hover{ background: #e4e4e4; border-color:#7f7f7f; } .tab-btn .active{ background: #e4e4e4; border-color:#7f7f7f; }
我在小米官网发现他们的左右按钮非常有趣,他们用的是一张图片实现的左右按钮的样式和点击触碰的颜色变换,按钮图片如下:
这样就非常方便。
JavaScript:
<script type="text/javascript" src="jquery-3.3.1.js"></script> <script type="text/javascript"> var index2 = 0;/*初始化一个变量 指向下彪*/ //点击点 $(".tab-btn .btn").click(function () { index2 = $(this).index();//获取点击该元素下彪 $(this).addClass("active").siblings().removeClass("active"); $(".item").eq(index2).fadeIn().siblings().fadeOut(); }); //点击切换效果 $(".lr-tab .right").click(function () { index2 ++; if (index2 >4){ index2 = 0;} $(".item").eq(index2).fadeIn().siblings().fadeOut(); $(".tab-btn .btn").eq(index2).addClass("active").siblings().removeClass("active"); }); $(".lr-tab .left").click(function () { index2 --; if(index2 < 0){index2 = 4;} $(".item").eq(index2).fadeIn().siblings().fadeOut(); $(".tab-btn .btn").eq(index2).addClass("active").siblings().removeClass("active"); }); var time2 = setInterval(function () { index2 ++; if (index2 >4){ index2 = 0;} $(".item").eq(index2).fadeIn().siblings().fadeOut(); $(".tab-btn .btn").eq(index2).addClass("active").siblings().removeClass("active"); },4000); //定时器 重复 </script>
这里引用的是Jquery。
标签:轮播,JavaScript,active,html,tab,按钮,index2,siblings,btn 来源: https://www.cnblogs.com/ninama/p/16074641.html