面向對象實現多圖輪播效果

来源:https://www.cnblogs.com/developerL/archive/2018/09/22/moreBanner.html
-Advertisement-
Play Games

1.靜態頁面的搭建 1 <body> 2 <div class="wrap" id="wrap"> 3 <div id="wrap_bg"> 4 <ul> 5 <li><img src="image/img_bg/img_bg_5.jpg"></img></li> 6 <li><img src="i ...


1.靜態頁面的搭建

 1 <body>
 2     <div class="wrap" id="wrap">
 3         <div id="wrap_bg">
 4             <ul>               
 5                 <li><img src="image/img_bg/img_bg_5.jpg"></img></li>
 6                 <li><img src="image/img_bg/img_bg_1.jpg"></img></li>
 7                 <li><img src="image/img_bg/img_bg_2.jpg"></img></li>
 8                 <li><img src="image/img_bg/img_bg_3.jpg"></img></li>
 9                 <li><img src="image/img_bg/img_bg_4.jpg"></img></li>
10                 <li><img src="image/img_bg/img_bg_5.jpg"></img></li>
11                 <li><img src="image/img_bg/img_bg_1.jpg"></img></li>
12                 
13             </ul>
14         </div>
15         <div id="wrap_main">
16             <div id="wrap_main_left">
17                 <ul>
18                     <li><img src="image/img_lt/img_lt_5.jpg"></img></li>
19                     <li><img src="image/img_lt/img_lt_1.jpg"></img></li>
20                     <li><img src="image/img_lt/img_lt_2.jpg"></img></li>
21                     <li><img src="image/img_lt/img_lt_3.jpg"></img></li>
22                     <li><img src="image/img_lt/img_lt_4.jpg"></img></li>
23                     <li><img src="image/img_lt/img_lt_5.jpg"></img></li>
24                     <li><img src="image/img_lt/img_lt_1.jpg"></img></li>
25                 </ul>
26             </div>
27             <div id="wrap_main_right">
28                 <div id="wrap_main_right_1">
29                     <ul>
30                         <li><img src="image/img_gt_1/img_gt_1_5.jpg"></img></li>
31                         <li><img src="image/img_gt_1/img_gt_1_1.jpg"></img></li>
32                         <li><img src="image/img_gt_1/img_gt_1_2.jpg"></img></li>
33                         <li><img src="image/img_gt_1/img_gt_1_3.jpg"></img></li>
34                         <li><img src="image/img_gt_1/img_gt_1_4.jpg"></img></li>
35                         <li><img src="image/img_gt_1/img_gt_1_5.jpg"></img></li>
36                         <li><img src="image/img_gt_1/img_gt_1_1.jpg"></img></li>
37                     </ul>
38                 </div>
39                 <div id="wrap_main_right_2">
40                     <ul>
41                         <li><img src="image/img_gt_2/img_gt_2_5.jpg"></img></li>
42                         <li><img src="image/img_gt_2/img_gt_2_1.jpg"></img></li>
43                         <li><img src="image/img_gt_2/img_gt_2_2.jpg"></img></li>
44                         <li><img src="image/img_gt_2/img_gt_2_3.jpg"></img></li>
45                         <li><img src="image/img_gt_2/img_gt_2_4.jpg"></img></li>
46                         <li><img src="image/img_gt_2/img_gt_2_5.jpg"></img></li>
47                         <li><img src="image/img_gt_2/img_gt_2_1.jpg"></img></li>
48                     </ul>
49                 </div>
50                 <div id="wrap_main_right_3">
51                     <ul>              
52                         <li><img src="image/img_gt_3/img_gt_3_5.jpg"></img></li>        
53                         <li><img src="image/img_gt_3/img_gt_3_1.jpg"></img></li>
54                         <li><img src="image/img_gt_3/img_gt_3_2.jpg"></img></li>
55                         <li><img src="image/img_gt_3/img_gt_3_3.jpg"></img></li>
56                         <li><img src="image/img_gt_3/img_gt_3_4.jpg"></img></li>
57                         <li><img src="image/img_gt_3/img_gt_3_5.jpg"></img></li>
58                         <li><img src="image/img_gt_3/img_gt_3_1.jpg"></img></li>
59                     </ul>
60                 </div>
61             </div>
62             <div id="tab">
63                 <ul>
64                     <li class="on"></li>
65                     <li></li>
66                     <li></li>
67                     <li></li>
68                     <li></li>
69                 </ul>
70             </div>
71             <div id="btn">
72                 <div id="left_btn">&lt</div>
73                 <div id="right_btn">&gt</div>
74             </div>
75         </div>
76     </div>
77     <script src="js/newMove.js"></script>
78     <script src="js/index.js"></script>
79 </body>
View Code
@charset 'utf-8';
*{
    margin: 0;
    padding: 0;
}
li{
    list-style: none;
    border: none;
}
img{
    border: none;
}
body{
    width: 1680px;  
   
}
.wrap{
    width: 100%;
    height: 552px;
    margin-top: 100px;
    position: relative;
    
}
/*start bg*/
#wrap_bg{
    width: 100%;
    height: 490px;  
    background: green;
    position: absolute;
    top: 0;   
}
#wrap_bg ul{
    width: 700%;
    margin-left: -100%;
}
#wrap_bg ul li{   
    width: 1680px;
    height: 100%;
    float: left;
}
/*end bg*/

/*start main*/
#wrap_main{
    width: 1200px;
    height: 500p;
    position: absolute;
    left: 180px;
    top: 50px;
}
/*start main_left*/
#wrap_main_left{
    width: 600px;
    height: 500px;
    overflow: hidden;
    z-index: 3;
}
#wrap_main_left ul{
    width: 700%;
    height: 100%;   
    margin-left: -600px;
}
#wrap_main_left ul li{
    width: 600px;
    height: 500px;
    float: left;   
}
/*end main_left*/
/*start main_right*/
#wrap_main_right{
    width: 600px;
    height:500px;
    position: absolute;
    left: 600px;
    top:0;
   
    z-index: 0;
}
/*start main_right_1*/
#wrap_main_right_1{
    width: 100%;
    height: 250px;
    overflow: hidden;
}
#wrap_main_right #wrap_main_right_1 ul{
    width: 700%;
    height: 100%;
    margin-left: -600px;
}
#wrap_main_right #wrap_main_right_1 ul li{
    width: 600px;
    height: 250px;
    float: left;
}
/*end main_right_1*/

/*start main_right_2*/
#wrap_main_right #wrap_main_right_2{
    width: 300px;
    height: 250px;
    position: absolute;
    left: 0;
    top: 250px;
    overflow: hidden;
}
#wrap_main_right #wrap_main_right_2 ul{
    width: 700%;
    height: 100%;   
    margin-left: -300px;
}
#wrap_main_right #wrap_main_right_2 ul li{
    width: 300px;
    height: 250px;
    float: left;
}
/*end main_right_2*/

/*start main_right_3*/
#wrap_main_right #wrap_main_right_3{
    width: 300px;
    height: 250px;
    position: absolute;
    left: 300px;
    top: 250px;
    overflow: hidden;
}
#wrap_main_right #wrap_main_right_3 ul{
    width: 700%;
    height: 100%;   
    margin-left: -300px;
}
#wrap_main_right #wrap_main_right_3 ul li{
    width: 300px;
    height: 250px;
    float: left;
}
/*end main_right_3*/
/*start tab*/
#tab{
    width: 90px;
    height: 15px;
    position: absolute;
    top: 465px;
    left: 50%;
    margin-left: -45px;    
    cursor: pointer;
}
#tab ul{
    width: 86px;
    height: 15px;  
}
#tab ul li{   
    width: 10px;
    height: 10px;
    margin:2px 3px;
    background: #999;
    border-radius: 100%;
    float: left;
}
#tab ul .on{
    background: #fb921e;  
}
/*end tab*/
/*start btn*/
#btn div{
    width: 30px;
    height: 36px;
    background: #6e6e6e; 
    font-size: 20px;
    font-weight: bold;
    text-align: center;
    color: #fff;
    position: absolute;
    top: 50%;
    margin-top: -18px;
    cursor: pointer;
}
#left_btn{   
    left: 0;
}
#right_btn{
    right: 0;
}
/*end btn*/
/*end main*/
View Code

靜態頁面搭建比較簡單,主要是靠定位來實現

效果圖:

2.js封裝時間版運動框架

  1 function move(obj,mjson,time,callback,cv){
  2     cv = cv || 'linear';
  3     var startVal={};
  4     var endVal={};
  5     for(var key in mjson){
  6         startVal[key]=parseInt(getStyle(obj,key));
  7         endVal[key]=parseInt(mjson[key]);
  8     }  
  9     var startTime=new Date();
 10     
 11     //alert(typeof startVal);
 12     //console.log(startVal);
 13     var timer=setInterval(function(){
 14         var t=new Date()-startTime;//經過了多長時間                   
 15         var d=time;//持續時間
 16         
 17         if(t>=d){
 18             t=d;
 19             clearInterval(timer);
 20         }
 21         for (var key in mjson){
 22             var b=startVal[key];//初始值
 23             var c=endVal[key]-b;//變化量
 24             var s=Tween[cv](t,b,c,d);
 25             obj.style[key]=s+"px";
 26         }
 27         if(t==d){
 28             callback && callback.call(obj);
 29         }
 30         //obj.style[attr]=s+"px";
 31         //console.log(obj.style[attr]);
 32     },13)
 33 
 34     //獲取樣式方法(對於IE和非IE瀏覽器做了相容)
 35     function getStyle(obj,attr){
 36         return obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj)[attr];
 37     }
 38 };
 39 var Tween = {
 40     /*
 41     t:當前時間
 42     b:初始值
 43     c:變化量
 44     d:持續時間
 45     */
 46     linear: function (t, b, c, d){  //勻速
 47         return c*t/d + b;
 48     },
 49     easeIn: function(t, b, c, d){  //加速曲線
 50         return c*(t/=d)*t + b;
 51     },
 52     easeOut: function(t, b, c, d){  //減速曲線
 53         return -c *(t/=d)*(t-2) + b;
 54     },
 55     easeBoth: function(t, b, c, d){  //加速減速曲線
 56         if ((t/=d/2) < 1) {
 57             return c/2*t*t + b;
 58         }
 59         return -c/2 * ((--t)*(t-2) - 1) + b;
 60     },
 61     easeInStrong: function(t, b, c, d){  //加加速曲線
 62         return c*(t/=d)*t*t*t + b;
 63     },
 64     easeOutStrong: function(t, b, c, d){  //減減速曲線
 65         return -c * ((t=t/d-1)*t*t*t - 1) + b;
 66     },
 67     easeBothStrong: function(t, b, c, d){  //加加速減減速曲線
 68         if ((t/=d/2) < 1) {
 69             return c/2*t*t*t*t + b;
 70         }
 71         return -c/2 * ((t-=2)*t*t*t - 2) + b;
 72     },
 73     elasticIn: function(t, b, c, d, a, p){  //正弦衰減曲線(彈動漸入)
 74         if (t === 0) { 
 75             return b; 
 76         }
 77         if ( (t /= d) == 1 ) {
 78             return b+c; 
 79         }
 80         if (!p) {
 81             p=d*0.3; 
 82         }
 83         if (!a || a < Math.abs(c)) {
 84             a = c; 
 85             var s = p/4;
 86         } else {
 87             var s = p/(2*Math.PI) * Math.asin (c/a);
 88         }
 89         return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
 90     },
 91     elasticOut: function(t, b, c, d, a, p){    //正弦增強曲線(彈動漸出)
 92         if (t === 0) {
 93             return b;
 94         }
 95         if ( (t /= d) == 1 ) {
 96             return b+c;
 97         }
 98         if (!p) {
 99             p=d*0.3;
100         }
101         if (!a || a < Math.abs(c)) {
102             a = c;
103             var s = p / 4;
104         } else {
105             var s = p/(2*Math.PI) * Math.asin (c/a);
106         }
107         return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
108     },    
109     elasticBoth: function(t, b, c, d, a, p){
110         if (t === 0) {
111             return b;
112         }
113         if ( (t /= d/2) == 2 ) {
114             return b+c;
115         }
116         if (!p) {
117             p = d*(0.3*1.5);
118         }
119         if ( !a || a < Math.abs(c) ) {
120             a = c; 
121             var s = p/4;
122         }
123         else {
124             var s = p/(2*Math.PI) * Math.asin (c/a);
125         }
126         if (t < 1) {
127             return - 0.5*(a*Math.pow(2,10*(t-=1)) * 
128                     Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
129         }
130         return a*Math.pow(2,-10*(t-=1)) * 
131                 Math.sin( (t*d-s)*(2*Math.PI)/p )*0.5 + c + b;
132     },
133     backIn: function(t, b, c, d, s){     //回退加速(回退漸入)
134         if (typeof s == 'undefined') {
135         s = 1.70158;
136         }
137         return c*(t/=d)*t*((s+1)*t - s) + b;
138     },
139     backOut: function(t, b, c, d, s){
140         if (typeof s == 'undefined') {
141             s = 3.70158;  //回縮的距離
142         }
143         return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
144     }, 
145     backBoth: function(t, b, c, d, s){
146         if (typeof s == 'undefined') {
147             s = 1.70158; 
148         }
149         if ((t /= d/2 ) < 1) {
150             return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
151         }
152         return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
153     },
154     bounceIn: function(t, b, c, d){    //彈球減振(彈球漸出)
155         return c - Tween['bounceOut'](d-t, 0, c, d) + b;
156     },       
157     bounceOut: function(t, b, c, d){
158         if ((t/=d) < (1/2.75)) {
159             return c*(7.5625*t*t) + b;
160         } else if (t < (2/2.75)) {
161             return c*(7.5625*(t-=(1.5/2.75))*t + 0.75) + b;
162         } else if (t < (2.5/2.75)) {
163             return c*(7.5625*(t-=(2.25/2.75))*t + 0.9375) + b;
164         }
165         return c*(7.5625*(t-=(2.625/2.75))*t + 0.984375) + b;
166     },      
167     bounceBoth: function(t, b, c, d){
168         if (t < d/2) {
169             return Tween['bounceIn'](t*2, 0, c, d) * 0.5 + b;
170         }
171         return Tween['bounceOut'](t*2-d, 0, c, d) * 0.5 + c*0.5 + b;
172     }
173 };
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 很多人在安裝orcl資料庫時,出現很多報錯,我也不例外,因上次資料庫出現問題,無法修複,只能從新安裝,無奈的是,安裝時報啟動服務出現錯誤,找不到OracleMTSRecoveryService錯MMP,心想又是咋咯回事,第一反應肯定就是沒卸載乾凈。下麵時處理辦法:不是所有報錯通用辦法。 打開註冊表看 ...
  • 在網頁中,實現動畫無外乎兩種方式。1. CSS3 方式,也就是利用瀏覽器對CSS3 的原生支持實現動畫;2. 腳本方式,通過間隔一段時間用JavaScript 來修改頁面元素樣式來實現動畫。接下來我們就分別介紹這兩種方式的原理,讓大家先對這兩種方式有一個直觀認識,瞭解各自的優缺點。 CSS3 的方式 ...
  • 在一些網站上可以經常看到有一些圖片進行持續不斷的滾動,這個效果可以通過css的動畫效果來實現。具體效果如下 主要原理是通過動畫向左移動。 首先給出兩組一樣的圖片(同一行上),讓整體圖片向左移動一組圖片的長度, 這樣在動畫結束時會迅速還原到原來位置,而此時正好與第二組圖片交替,看起來就像是一組圖片在不 ...
  • 此篇接上一篇: 移動端H5混合開發,Touch觸控,拖拽,長按, 滑屏 實現方案 https://www.cnblogs.com/buoge/p/9346699.html app 場布設置已經上線了,用戶可以通過手機端嵌入的h5網頁進行場布設置,原來只能在pc端瀏覽器,還得帶上個筆記本電腦很是不方便 ...
  • 我的圖片上傳使用form表單,html: css js 後臺把數據傳給資料庫,成功後跳轉頁面,在html頁面中用這個<img src="${sessionScope.imgurl}"/> ...
  • 在 webpack.dev.config.js中 在請求金封裝的介面中 ...
  • Java中線程調用出了線程池外可以使用多個繼承於queue的類獲得多Java線程。 由於Java中所有都是對象的設定可以使用類來存儲各種數據(類似c++中的struct) 在servlet編程中,繼承自HTTPservlet類時新手推薦只重載doGet()以及doPost()函數 上個例子 其中創建 ...
  • //for in 不可以獲取不可枚舉的屬性 //hasOwnProperty 會忽略原型鏈上的屬性 //Object.getOwnPropertyNames 可以獲取可枚舉和不可枚舉的屬性 //深拷貝 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...