【JavaScript】輪播圖

来源:https://www.cnblogs.com/zhongyanzhiyan/archive/2018/01/25/8352727.html
-Advertisement-
Play Games

代碼: 自封裝js: 描述:可以根據放入的圖片大小自動適應大小,輪播圖下方會有小縮略圖 ...


代碼:

  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             

 

描述:可以根據放入的圖片大小自動適應大小,輪播圖下方會有小縮略圖


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1:BOM(Browser Object Model)概念 window對象是BOM中所有對象的核心。 2:window屬性(較少用) self:self代表自己,相當於window。 parent:返回父視窗。 top:返回頂層視窗,和parent作用一樣。 opener:視窗開啟者。 3:win ...
  • Math對象的介紹 1:Math對象 Math 對象用於執行數學任務。並不像 Date 和 String 那樣是對象的類,因此沒有構造函數 Math()。您無需創建它,通過把 Math 作為對象使用就可以調用其所有屬性和方法。 2:Math屬性 PI:返回圓周率(約等於3.14159)。 3:Mat ...
  • 一:模板對象 二、Vue指令 指令:是帶有V-首碼的特殊屬性,通過屬性來操作元素 1.v-text和v-html v-text:在元素當中插入值,只能是文本 v-html:在元素不中不僅可以插入文本,還可以插入標簽 <!DOCTYPE html> <html lang="en"> <head> <m ...
  • 1:ES5簡介 ECMAScript 5.1 (或僅 ES5) 是ECMAScript(基於JavaScript的規範)標準的修正。 與HTML5規範進程本質類似,ES5通過對現有JavaScript方法添加語句和原生ECMAScript對象做合併實現標準化。 2:嚴格模式的意義 相對於正常模式而言 ...
  • 1:定義:javascript是一種弱類型、動態類型、解釋型的腳本語言。 弱類型:類型檢查不嚴格,偏向於容忍隱式類型轉換。 強類型:類型檢查嚴格,偏向於不容忍隱式類型轉換。 動態類型:運行的時候執行類型檢查。 靜態類型:編譯的時候就知道每個變數的類型。 解釋型:程式不需要編譯,程式在運行的時候才翻譯 ...
  • 本篇導航: 介紹與安裝 vue常用指令 一、介紹與安裝 vue是一套構建用戶界面的JAVASCRIPT框架。與其它大型框架不同的是,Vue 被設計為可以自底向上逐層應用。Vue 的核心庫只關註視圖層,不僅易於上手,還便於與第三方庫或既有項目整合。 1、安裝 下載vue.js:https://cn.v ...
  • js原生輪播 今天用js做了輪播圖,做的不怎麼好,希望大家能夠看懂。 效果: 1.滑鼠放在輪播圖上自動停止 2.滑鼠離開輪播圖自動播放 3.滑鼠點擊輪播圖上的小圓點跳轉到相應的圖上。 代碼: 輪播就到這裡了,裡面還有自己封裝的函數,就使用了標簽,類名,id獲取。 ...
  • 1、勾選“禁用模板預設CSS” 2、將下麵代碼粘貼到“頁面定製CSS代碼”部分 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...