首页 > 技术文章 > js原生轮播

chengyunshen 2017-07-17 17:09 原文

用来理解轮播图的操作原理

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <style>
 7              /*轮播图效果*/
 8               .carouselbox{
 9                 position: relative;
10                 height: 600px;
11               }
12               .carousel div{
13                 width: 100%;
14                 height:600px;
15               }
16               .carousel{
17                 height: 600px;
18                 overflow: hidden;
19                 position: relative;
20               }
21               .carousel div:first-child{
22                 background: url("./1.jpg") no-repeat;
23                 background-size:100% 100%;
24               }
25               .carousel div:last-child{
26                 background: url("./2.jpg") no-repeat;
27                 background-size:100% 100%;
28               }
29             
30               #left{
31               position: absolute;
32               top:50%;
33               left: 2%;
34               /*background: transparent;*/
35               opacity:.3;
36               }
37               #left:hover,#right:hover{
38                 opacity:.8;
39               }
40               #right{
41               position: absolute;
42               top:50%;
43               right:2%;
44               opacity:.3;
45               }
46 
47         </style>
48     </head>
49     <body>
50         <div class="carouselbox">
51           <div class="carousel" id="carousel">
52             <div class=""></div>
53             <div class=""></div>
54           </div>
55           <span id="left">
56               <img src="./1.jpg" alt="">
57           </span>
58           <span id="right">
59               <img src="./1.jpg" alt="">
60           </span>
61         </div>
62         
63         <script>
64               var carsouel=document.getElementById("carousel");
65               var list = carousel.children;
66         
67               var left = document.getElementById("left");
68               var right = document.getElementById("right");
69               left.style.marginTop=-left.offsetHeight/2 + "px";
70               right.style.marginTop=-right.offsetHeight/2 + "px";
71               var height = carousel.offsetHeight;
72               // (list.length-1)*height;
73               left.onclick=function(){
74                 var currentheight = list[0].offsetTop;
75                 if (Math.abs(currentheight) >= (list.length-1)*height){
76                   list[0].style.marginTop = 0+"px";
77                 }else{
78                   list[0].style.marginTop=(currentheight - height) + "px";
79                   }
80               }
81         
82               right.onclick=function(){
83                 var currentheight = list[0].offsetTop;
84                 if (currentheight >= 0){
85                   list[0].style.marginTop =-(list.length-1)*height +"px";
86                 }else{
87                   list[0].style.marginTop=(currentheight + height) + "px";
88                   }
89               }
90 
91         </script>
92     </body>
93 </html>

 

推荐阅读