【JavaScript】轮播图

代码:

  1 <!DOCTYPE html>
  2 <html>
  3     <head>
  4         <meta charset="utf-8" />
  5         <title></title>
  6         <style type="text/css">
  7             *{margin:0 auto;padding: 0;}
  8             #LB_div{overflow:hidden;position: relative;}
  9             #LB_span{background: #000;display: block;position: absolute;}
 10             #LB_span img{float: left;}
 11             #LB_zuo,#LB_you:hover{cursor:none;}
 12             #LB_ul{list-style: none;display: block;position:absolute;left: 50%; top: 80%;transform: translate(-50%,0);}
 13             /*#LB_ul li{float:left;text-align: center;background: gold;border-radius:50%;width: 20px;height: 20px;}*//*这行是小圆点的代码*/
 14             #LB_ul li{background: transparent;display: inline-block;padding-top:4px;box-sizing:border-box}/*这行是小图片的代码*/
 15             #LB_ul li+li{margin-left: 8px;}
 16             #LB_ul li:hover{cursor:pointer;background: goldenrod;}
 17             #LB_zuo{position: absolute; background: #fff;width: 10%; height: 100%;left:0;opacity: 0;}
 18             #LB_you{position: absolute; background: #fff;width: 10%; height: 100%;right:0;opacity: 0;}
 19             #LB_left,#LB_right{position: absolute;width: 50px;display: none;}
 20             #LB_left,#LB_right:hover{cursor:none;}
 21         </style>
 22     </head>
 23     <body>
 24         <div id="LB_div">
 25             <span id="LB_span">
 26                 <img src="img/IMG_20160421_205146.jpg"/>
 27                 <img src="img/IMG_20160421_205146.jpg"/>
 28                 <img src="img/IMG_20160421_205146.jpg"/>
 29                 <img src="img/IMG_20160421_205146.jpg"/>
 30                 <img src="img/IMG_20160421_205146.jpg"/>
 31                 <img src="img/IMG_20160421_205146.jpg"/>
 32                 <img src="img/IMG_20160421_205146.jpg"/>
 33                 <img src="img/IMG_20160421_205146.jpg"/>
 34                 <img src="img/IMG_20160421_205146.jpg"/>
 35             </span>
 36             <p id="LB_zuo"></p>
 37             <p id="LB_you"></p>
 38             <img src="img/Cristal_Intense_072.png" id="LB_left"/>
 39             <img src="img/Cristal_Intense_069.png" id="LB_right"/>
 40             <ul id="LB_ul"></ul>
 41         </div>
 42
 43
 44
 45
 46         <script type="text/javascript" src="js/Xing_js.js" ></script>
 47         <script>
 48             var arr=document.querySelectorAll("#LB_span img");
 49             var div=document.querySelector("#LB_div");
 50             var span=document.querySelector("#LB_span");
 51             var zuo=document.querySelector("#LB_zuo");
 52             var you=document.querySelector("#LB_you");
 53             var ul=document.querySelector("#LB_ul");
 54             var jiantou_L=document.querySelector("#LB_left")
 55             var jiantou_r=document.querySelector("#LB_right")
 56
 57             var b=0;
 58
 59             if(arr.length!=0){//判断有没有图
 60
 61
 62
 63                 //根据所有图片长度设置span的长度
 64                 span.style.width=(arr.length*arr[0].width)+"px";
 65                 span.style.left="0px";
 66                 span.style.transition="0.5s";
 67
 68
 69
 70                 //根据图片设置div的长宽
 71                 div.style.width=arr[0].width+"px";
 72                 div.style.height=arr[0].height+"px";
 73
 74
 75
 76 //                console.log(arr[0].width);
 77                 //根据图片数量设置小圆点
 78                 for(var i=1;i<=arr.length;i++){
 79                     var li=document.createElement("li");
 80
 81                     var img=document.createElement("img");//中间这段是小图片的代码
 82                     img.src=arr[i-1].src;
 83                     img.setAttribute("style","width: "+parseInt(arr[0].width)*0.1+"px;height"+parseInt(arr[0].height)*0.1+"px;display: inline-block;")
 84                     li.appendChild(img);
 85
 86                     li.setAttribute("onClick","yuan("+i+")");
 87                     ul.appendChild(li);
 88                 }
 89
 90                 //根据每个li的margin-left来设置ul的宽度
 91                 var li_arr=document.querySelectorAll("li");
 92                 for(var x=0;x<li_arr.length;x++){
 93                     b+=parseInt(Xing_getCSS(li_arr[x],"marginLeft"));
 94                     ul.style.width=parseInt(arr[0].width)*0.1*(arr.length)+b+"px";
 95                 }
 96
 97
 98
 99
100                 //正span移动
101                 var    i=0;
102                 function zheng(){
103                     i++;
104                     if(i==arr.length){i=0;};
105                     span.style.left="-"+arr[0].width*i+"px";
106                     biao(i);
107                     return i;
108                 }
109
110
111                 //负span移动
112                 function fu(b){
113                     b--;
114                     if(b==-1){b=arr.length-1;}
115                     span.style.left="-"+arr[0].width*b+"px";
116                     biao(b);
117                     return b;
118                 }
119
120
121                 //小圆点被单击
122                 function yuan(m){
123                     i=m-2;
124                     zheng();
125                 }
126
127                 //小圆点标亮
128                 function biao(d){
129                     var li=ul.childNodes;
130                     for(var x=0;x<arr.length;x++){
131                         if(x==d){
132                             li[x].style.background=Xing_RandomColor();
133                         }else{
134                             li[x].style.background="transparent"
135                         }
136                     }
137
138
139                 }
140
141
142                 //两键被单击时
143                 you.onclick=function(){
144                     i=zheng();
145                 }
146                 zuo.onclick=function(){
147                     i=fu(i);
148                 }
149
150                 zuo.onmouseover=function(){//左右两边的白边和指针跟随
151                     this.style.opacity="0.4";
152                     this.onmousemove=function(e){
153                         var x=e.layerX;
154                         var y=e.layerY;
155                         jiantou_L.style.display="block"
156                         jiantou_L.style.left=x+5+"px";
157                         jiantou_L.style.top=y+5+"px";
158                     }
159                     this.onmouseout=function(){
160                         jiantou_L.style.display="none"
161                         this.style.opacity="0";
162                     }
163                 }
164
165                 you.onmouseover=function(){
166                     this.style.opacity="0.4";
167                     this.onmousemove=function(e){
168                         var x=e.layerX;
169                         var y=e.layerY;
170                         jiantou_r.style.display="block"
171                         jiantou_r.style.left=x+5+"px";
172                         jiantou_r.style.top=y+5+"px";
173                     }
174                     this.onmouseout=function(){
175                         jiantou_r.style.display="none"
176                         this.style.opacity="0";
177                     }
178                 }
179
180
181                 //定时器
182                 var ding=setInterval("zheng(true)",1000);
183                 div.onmouseover=function(){//鼠标hover停止
184                     clearInterval(ding);
185                     div.onmouseout=function(){//鼠标移除
186                         ding=setInterval("zheng(true)",1000);
187                     }
188                 }
189
190             }else{
191                 div.setAttribute("style","border: 1px solid #000;width:300px;height:300px;text-align: center;")
192                 div.innerHTML="请放入轮播图图片";
193             }
194
195
196
197         </script>
198     </body>
199 </html>

自封装js:

 1 //获取id---------------------------------------------------------
 2 function Xing_id(x){
 3     return document.getElementById(x);
 4 }
 5
 6 //刷新页面---------------------------------------------------------
 7 function Xing_ShuaXinYeMian(){
 8     location.reload();
 9 }
10
11 //选取class,注意返回数组---------------------------------------------------------
12 function Xing_Class(x){
13     return document.getElementsByClassName(x);
14
15 }
16
17
18 //封装随机颜色-------------------------------------------------------
19 function Xing_RandomColor(){
20     var sum="";
21     var shuzu2=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘,‘0‘,‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘];
22     for(var i=1;i<=3;i++){
23         var int2=parseInt(Math.random()*shuzu2.length);
24         sum+=shuzu2[int2];
25     }
26     var sum2="#"+sum;
27     sum="";
28     return sum2;    //返回随机的三位16进制rgb颜色
29 }
30
31
32 //随机验证码---------------------------------------------------------
33 function Xing_RandomYanZhengMa(n){        //传入:要返回几个验证码数
34  var str = ‘abcdefghijklmnopqrstuvwxyz0123456789‘;
35  var tmp = ‘‘;
36  for(var i=0;i<n;i++)
37   tmp += str.charAt(Math.round(Math.random()*str.length));
38  return tmp;        //返回数组
39 }
40
41
42 //封装选择质数的选择器---------------------------------------------------------
43 function Xing_ZhiShuXuanZe(arguments){//传入数组,一个或多个
44     var hehe=[];
45     for(var i=0;i<arguments.length;i++){
46         if(arguments[i]%2!=0&&arguments[i]%3!=0&&arguments[i]%5!=0&&arguments[i]!=1||arguments[i]==3||arguments[i]==2||arguments[i]==5&&arguments[i]!=0){
47             hehe.push(arguments[i]);
48         }
49     }
50     return hehe    //返回所有质数的数组
51 }
52
53
54
55 //找字符串中倒数第n次出现的字符---------------------------------------------------
56 function Xing_lastStr(char,y,str,b){//char:要找的字符,y:倒数第几位,//str:字符串
57     var b=0;
58     if(b==true){
59         for(var i=str.length-1;i>=0;i--){
60             if(str[i]==char){
61                 b++;
62                 if(b==y){
63                     return i;//返回其下标
64                 }
65             }
66         }
67     }else{
68         for(var i=0;i<str.length;i++){
69             if(str[i]==char){
70                 b++;
71                 if(b==y){
72                     alert("正")
73                     return i;//返回其下标
74                 }
75             }
76         }
77     }
78 }
79
80
81
82
83 //获取外部或头部css样式----------------------------------------------------
84 function Xing_getCSS(BQ,gao){//BQ:传入的标签   gao:要找的样式
85     return window.getComputedStyle(BQ)[gao];    //返回该样式的值
86 }
87
88
89             

描述:可以根据放入的图片大小自动适应大小,轮播图下方会有小缩略图

原文地址:https://www.cnblogs.com/zhongyanzhiyan/p/8352727.html

时间: 2024-10-12 19:46:38

【JavaScript】轮播图的相关文章

原生javascript轮播图!

<style> .box { width: 500px; height: 275px; position: relative; margin: 100px auto; } a { text-decoration: none; font-size: 28px; text-align: center; line-height: 80px; display: inline-block; width: 40px; color:#fff; background:rgba(0,0,0,0.6); posi

html5+css+JavaScript 轮播图

BEGIN: HTML代码如下 <div id="slideShowContainer"> <ul id="imgUl"> <li> <div class="SlidePic"> <a href="#"><img src="img/g_1.jpeg" alt="" /></a> </div>

jquery 广告轮播图

轮播图 /*轮播图基本功能: * 1图片切换 * 1.1图片在中间显示 * 1.2图片淡入淡出 * 2左右各有一个按钮 * 2.1点击左按钮,图片切换上一张 * 2.2点击右按钮,图片切换下一张 * 2.3鼠标滑过按钮,按钮颜色加深 * 3底部的导航点 * 3.1图片为第几张时,点在那第几张 * 3.2鼠标滑到第几个点,图片切换到第几张 * 4图片自动轮播 * 4.1默认自动下一张 * 4.2鼠标在图片范围时,停止切换 * 4.3鼠标离开图片范围,恢复自动切换 * 5鼠标放在图片范围时,变为小手

javascript效果:手风琴、轮播图、图片滑动

最近都没有更,就来几个效果充实一下. 都没有进行美化这步. 手风琴: 纯css: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>手风琴css</title> <style> .showBox{ width: 660px; overflow: hidden; } ul{ list-style:

轮播图-JavaScript

轮播图一: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus?"> <meta name="Author" content=""> <meta name=

纯原生javascript仿网易轮播图

第一次有自己的关于代码的博客,感到诚惶诚恐.这可能是我第一次以程序猿,或者连初级程序猿都不是的身份下开通的个人“技术”(胡写乱写)博客园地.闲言碎语不要讲,咱今天就写一点关于js的代码吧.网易首页大家肯定都去过,在首页左侧部分有个轮播图,效果很好,构思精巧,非常诱人.注,此demo非本人原创,在这里进行个人解读,力求通俗易懂(主要是让我自己明白!). 那么如何实现相关技术,进而实现如图效果呢?下面的进度条是用JQuery写的,这里暂不考虑.下面从三个方面讨论网一轮播图. 一.HTML部分 1 <

JavaScript实现的轮播图

当初学习JavaScript的时候,想学习轮播图是怎么写的,结果在百度搜了半天也很难搜出一个完整的轮播图案例.现在就分享一个用js写的轮播图供大家参考和学习,有什么错误的地方或有更好的方法也请大家提出来,共同讨论和进步. 下面是效果图. <div id="play"> <ol>  //按钮 <li class="active">1</li> <li>2</li> <li>3</

【前端】javascript+jQuery实现旋转木马效果轮播图slider

实现效果: 实现原理: 技术栈: javascript+jQuery+html+css 实现步骤: // 0. 获取元素 // 1. 鼠标放置到轮播图上,显示两侧的控制按钮,移开后隐藏 // 2. 为两侧控制按钮绑定事件(调用同一个方法,只有一个参数,true为正向旋转,false为反向旋转) 实现代码: <!DOCTYPE html> <html> <head> <title>旋转木马效果轮播图</title> <meta charset

【前端】javascript实现带有子菜单和控件的轮播图slider

实现效果: 实现原理: // 步骤 // 1. 获取事件源以及相关元素 // 2. 复制第一张图片所在的li,添加到ul的最后面 // 3. 给ol添加li,ul中的个数-1个,并点亮第一个按钮 // 4. 鼠标放到ol的li上切换图片 // 5. 添加定时器 // 6. 左右切换图片(鼠标放上去隐藏,移开显示) 实现代码: <!DOCTYPE html> <html> <head> <title>轮播图</title> <meta cha