HTML学习之轮播图
这可以说是一种非常简单的实现轮播图的方法了,由于时间仓促所以没写自动轮播部分。简单说一下原理吧,就是把所有图片堆叠在一个盒子里,设置所有图片的透明度为0,这样就把所有图片都隐藏了,第一张图片除外(第一张透明度设为1),当要切换到某张图片时,在把该图片的透明度设为1,而其他的图片透明度设为0,这样就实现了简单的轮播啦。
代码:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title>淡入淡出轮播图</title> 6 <!-- css样式 --> 7 <style type="text/css"> 8 /*清除边距*/ 9 div,ul,li{ 10 margin: 0; 11 padding: 0; 12 } 13 14 /*首先准备一个放图片的容器*/ 15 .container{ 16 width: 500px; 17 height: 280px; 18 position: relative; 19 top: 100px; 20 left: 30%; 21 /*border: 1px solid #ccc;*/ 22 } 23 24 /*图片样式*/ 25 .container img{ 26 position: absolute; /*把所有图片放在同一个位置*/ 27 width: 100%; 28 transition-duration: 1s; /*设置过渡时间*/ 29 opacity: 0; /*把所有图片变透明*/ 30 } 31 /*图片显示开关*/ 32 .container img.on{ 33 opacity: 1; /*用于显示图片*/ 34 } 35 36 /*左右按钮 按钮用图片更好点,这里为了简便就用大于小于号*/ 37 .left, .right{ 38 position: absolute; 39 top: 30%; 40 width: 60px; 41 height: 100px; 42 line-height: 100px; 43 background-color: #666; 44 opacity: 0.5; 45 text-align: center; 46 font-size: 60px; 47 color: #ccc; 48 display: none; /*先隐藏按钮*/ 49 cursor: pointer; /*设置鼠标悬停时的样式*/ 50 } 51 .left{ 52 left: 0; 53 } 54 .right{ 55 right: 0; 56 } 57 .container:hover .left, .container:hover .right{ 58 display: block; /*鼠标悬停才容器范围内时显示按钮*/ 59 } 60 .left:hover, .right:hover{ 61 color: #fff; 62 } 63 64 /*焦点*/ 65 .container ul{ 66 position: absolute; 67 bottom: 0; 68 max-width: 500px; 69 padding: 5px 200px; 70 } 71 .container ul li{ 72 list-style: none; 73 float: left; 74 width: 10px; 75 height: 10px; 76 border-radius: 50%; 77 margin-left: 10px; 78 background-color: #ccc; 79 cursor: pointer; 80 } 81 .container ul li.active{ 82 background-color: #fff; /*焦点激活时的样式*/ 83 } 84 85 </style> 86 </head> 87 <body> 88 <div class="container"> 89 <!-- 图片 --> 90 <!-- 先把第一张图片显示出来 --> 91 <img class="on" src="img/1.jpg" /> 92 <img src="img/2.jpg" /> 93 <img src="img/3.jpg" /> 94 <img src="img/4.jpg" /> 95 <img src="img/5.jpg" /> 96 97 <!-- 左右按钮 --> 98 <div class="left"><</div> 99 <div class="right">></div> 100 101 <!-- 焦点 --> 102 <ul> 103 <li class="active"></li> 104 <li></li> 105 <li></li> 106 <li></li> 107 <li></li> 108 </ul> 109 </div> 110 111 <!-- js部分 --> 112 <script type="text/javascript"> 113 //1、找到container下的所有img标签,li标签,左右按钮 114 var aImgs = document.querySelectorAll(\'.container img\'); 115 var aLis = document.querySelectorAll(\'.container li\'); 116 var btnLeft = document.querySelector(\'.container .left\'); 117 var btnRight = document.querySelector(\'.container .right\'); 118 119 // //检验是否找到 120 // console.log(aImgs); 121 // console.log(aLis); 122 // console.log(btnLeft); 123 // console.log(btnRight); 124 125 //点击事件 126 //点击按钮图片切换 127 var index = 0; //当前图片下标 128 var lastIndex = 0; 129 btnRight.onclick = function(){ 130 //记录上一张图片的下标 131 lastIndex = index; 132 //清除上一张图片的样式 133 aImgs[lastIndex].className = \'\'; 134 aLis[lastIndex].className = \'\'; 135 136 index++; 137 index %= aImgs.length; //实现周期性变化 138 //设置当前图片的样式 139 aImgs[index].className = \'on\'; 140 aLis[index].className = \'active\'; 141 } 142 //左边按钮类似 143 btnLeft.onclick = function(){ 144 //记录上一张图片的下标 145 lastIndex = index; 146 //清除上一张图片的样式 147 aImgs[lastIndex].className = \'\'; 148 aLis[lastIndex].className = \'\'; 149 150 index--; 151 if (index < 0) { 152 index = aImgs.length - 1; 153 } 154 //设置当前图片的样式 155 aImgs[index].className = \'on\'; 156 aLis[index].className = \'active\'; 157 } 158 </script> 159 </body> 160 </html>
版权声明:本文为sky-top原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。