亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

基于jquery實現左右按鈕點擊的圖片切換效果

2024-05-06 16:25:03
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了基于jquery實現左右按鈕點擊的圖片切換效果,內容講解很豐富,感興趣的小伙伴們可以參考一下

jQuery可以制作出與Flash媲美的動畫效果,這點絕對毋庸置疑,本文將通過實例演示一個左右按鈕點擊的圖片切換效果。

一、最終效果

基于jquery實現左右按鈕點擊的圖片切換效果

二、功能分析

1、需求分析

點擊左邊pre按鈕,顯示前面三個圖片,點擊右邊的next按鈕,顯示后面的一組(三個)圖片。初始化只顯示next按鈕,到最后一組只顯示pre按鈕,中間過程兩按鈕都顯示。

2、html結構分析

 

 
  1. <div class="activity" id="activity-slide"
  2. <a href="javascript:void(0)" class="pg_left ps_pre"></a> 
  3. <a href="javascript:void(0)" class="pg_right ps_next" ></a> 
  4. <ul class="clearfix"
  5. <li><a href="javascript:;"><img src="images/activity01-1410.jpg"></a></li> 
  6. <li><a href="javascript:;"><img src="images/activity02-1410.jpg"></a></li> 
  7. <li><a href="javascript:;"><img src="images/activity03-1410.jpg"></a></li> 
  8. <li><a href="javascript:;"><img src="images/activity03-1410.jpg"></a></li> 
  9. <li><a href="javascript:;"><img src="images/activity02-1410.jpg"></a></li> 
  10. </ul> 
  11. </div> 

#activity-slide是整個幻燈的入口,后面會將其作為參數來調用幻燈功能。

兩個按鈕ps_pre和ps_next將添加click事件響應點擊切換功能。

3、功能分析

因為左右切換都是三個為一組的切換,如果li總個數不是3的倍數時,需要增加li節點填滿。

 

 
  1. //需要追加的li節點個數 
  2. var addli = 0; 
  3. //一組切換3個li 
  4. var num=3; 
  5. var lisize = a.find("ul li").size();//獲取li個數 
  6.  
  7. //判斷需要添加的li節點數量 
  8. var reminder=lisize%num; 
  9. if(lisize%num!=0){addli = num-reminder;} 
  10. else{addli = 0;} 
  11. addlist(); 

上面是判斷得到需要追加的個數lisize,然后調用addlist追加。

addlist如下,從ul的第一個li開始復制,需要幾個就復制出幾個節點追加。節點追加完畢后重新計算ul的寬度。

 

 
  1. function addlist(){ 
  2. for(i=0;i<addli;i++){ 
  3. var html = a.find("ul li").eq(i).html(); 
  4. a.find("ul").append("<li>"+html+"</li>");  
  5. a.find("ul").css({"width":(w_li+margin_li*2)*(lisize+addli)}); 

現在準備工作已經完成了。接下來就是給按鈕添加響應事件。在幻燈切換時涉及到左右按鈕的顯示和隱藏,所以先說這個按鈕顯示功能,將此分裝成一個函數btnshow。

 

 
  1. /*** 
  2. 參數說明: 
  3. now:當前是第幾組,默認是0 
  4. c:總共有幾組 
  5. d:初始化時li的個數 
  6. e:每組顯示li個數 
  7. ***/ 
  8. function btnshow(now,c,d,e){ 
  9. if(d<=e){//如果初始化時li的個數小于一組要顯示的數,則不顯示pre和next按鈕 
  10. a.find(".ps_next").hide(); 
  11. a.find(".ps_pre").hide(); 
  12. }else if(now==0){//初始化now=0,顯示第一組,只顯示next 
  13. a.find(".ps_next").show(); 
  14. a.find(".ps_pre").hide();  
  15. }else if(now==c-1){//顯示到最后一組,只顯示pre 
  16. a.find(".ps_next").hide(); 
  17. a.find(".ps_pre").show();  
  18. }else{//顯示中間組,pre和next都需要顯示 
  19. a.find(".ps_next").show(); 
  20. a.find(".ps_pre").show(); 

接下來幻燈切換。這里a是傳入的參數,也就是 #activity-slide。給它下面的所以的pre和next添加響應。

向前一組,組數now減一,now是幾,就讓ul的margin-left為負幾倍的組寬(即3倍的(li寬度+margin寬度)),然后顯示對于按鈕即可。

向后滑動一組li同理。

 

 
  1. function photoscroll(){ 
  2. a.find(".ps_pre").on("click",function(){//console.log(num);  
  3. now--; 
  4. if(now >= 0){  
  5. a.find("ul").animate({"margin-left":-now*num*(w_li+margin_li*2)}); 
  6. btnshow(now,parseInt((lisize+addli)/num),lisize,num); 
  7. }); 
  8.  
  9. a.find(".ps_next").on("click",function(){//console.log(num);  
  10. now++; 
  11. if(now < (lisize+addli)/num){  
  12. a.find("ul").animate({"margin-left":-now*num*(w_li+margin_li*2)}); 
  13. btnshow(now,parseInt((lisize+addli)/num),lisize,num); 
  14. }  
  15. });  
  16. btnshow(now,parseInt((lisize+addli)/num),lisize,num);  

三、實例代碼

1、用到圖片

基于jquery實現左右按鈕點擊的圖片切換效果

基于jquery實現左右按鈕點擊的圖片切換效果

基于jquery實現左右按鈕點擊的圖片切換效果

基于jquery實現左右按鈕點擊的圖片切換效果

2、完整代碼

 

 
  1. <!DOCTYPE HTML> 
  2. <html> 
  3. <head> 
  4. <meta charset="utf-8"
  5. <title></title> 
  6. <link rel="stylesheet" type="text/css" href="css/style.css"
  7.  
  8. <script> 
  9. window.onresize=function(){ 
  10. var winWidth = document.body.clientWidth; 
  11. if(winWidth <=1180){ 
  12. body.className="grid-960";  
  13. }else if (winWidth<= 1410){ 
  14. body.className="grid-1180";  
  15. }else if (winWidth>1410){ 
  16. body.className="grid-1410";  
  17. }else { 
  18. alert("do not know!"); 
  19. </script> 
  20. </head> 
  21. <body id="body" class=""
  22. <script>//初始化狀態顯示樣式判斷,放在body后面 
  23. var winWidth = document.body.clientWidth; 
  24. if (winWidth <=1180){ 
  25. body.className="grid-960";  
  26. }else if (winWidth<= 1410){ 
  27. body.className="grid-1180";  
  28. }else if (winWidth>1410){ 
  29. body.className="grid-1410";  
  30. }else { 
  31. alert("do not know!"); 
  32. </script> 
  33. <div class="wapper"
  34.  
  35. <div class="section"
  36. <h2 class="title">熱門活動</h2> 
  37. <div class="activity" class="movie" id="activity-slide"
  38. <a href="javascript:void(0)" class="pg_left ps_pre"></a> 
  39. <a href="javascript:void(0)" class="pg_right ps_next" ></a> 
  40. <ul class="clearfix"
  41. <li><a href="javascript:;"><img src="images/activity01-1410.jpg"></a></li> 
  42. <li><a href="javascript:;"><img src="images/activity02-1410.jpg"></a></li> 
  43. <li><a href="javascript:;"><img src="images/activity03-1410.jpg"></a></li> 
  44. <li><a href="javascript:;"><img src="images/activity03-1410.jpg"></a></li> 
  45. <li><a href="javascript:;"><img src="images/activity02-1410.jpg"></a></li> 
  46. </ul> 
  47. </div> 
  48. </div> 
  49.  
  50. </div> 
  51.  
  52.  
  53. </body> 
  54. </html> 
  55. <script src="http://code.jquery.com/jquery-latest.js"></script> 
  56. <script> 
  57. //首頁圖片滾動切換 
  58. (function($){ 
  59. $.photolist=function(a){  
  60. var w_li = a.find("li").width(); 
  61. var h_li = a.find("li").height(); 
  62. var margin_li=parseInt(a.find("li").css("marginLeft")); 
  63. var now = 0; 
  64. var num = 0; 
  65. var addli = 0; 
  66. var lisize = a.find("ul li").size(); 
  67. var htmlall = a.find("ul").html(); 
  68.  
  69. //判斷每次滾動數量 
  70. /* 
  71. var w_body = $("body").width(); 
  72. if(w_body <=1170){ 
  73. var num = 3; 
  74. }else if(w_body<= 1380){ 
  75. var num = 4; 
  76. }else if(w_body>1380){ 
  77. var num = 5; 
  78. } 
  79. */ 
  80. var num=3; 
  81.  
  82. //判斷需要添加的li節點數量 
  83. var reminder=lisize%num; 
  84. if(lisize%num!=0){addli = num-reminder;} 
  85. else{addli = 0;} 
  86. addlist(); 
  87. //點擊滾動事件 
  88. photoscroll(); 
  89.  
  90. $(window).resize(function(){ 
  91. //location.reload(); 
  92. now = 0; 
  93. addli = 0; 
  94. a.find("ul").html(htmlall);//html內容還原初始值 
  95. a.find(".ps_next").show();//按鈕樣式初始化 
  96. a.find(".ps_pre").hide(); 
  97. //判斷每次滾動數量 
  98. /* 
  99. var w_body = $("body").width(); 
  100. if(w_body <=1170){ 
  101. var num = 3; 
  102. }else if(w_body<= 1380){ 
  103. var num = 4; 
  104. }else if(w_body>1380){ 
  105. var num = 5; 
  106. } 
  107. */ 
  108. var num=3; 
  109. //判斷需要添加的li節點數量 
  110. var reminder=lisize%num; 
  111. if(lisize%num!=0){addli = num-reminder;} 
  112. else{addli = 0;} 
  113. addlist(); 
  114. w_li = a.find("li").width(); 
  115. margin_li=parseInt(a.find("li").css("marginLeft")); 
  116. a.find("ul").css({"width":(w_li+margin_li*2)*(lisize+addli)}); 
  117. a.find("ul").animate({"margin-left":0});//ul位置還原 
  118. btnshow(now,parseInt((lisize+addli)/num),lisize,num); 
  119. }); 
  120.  
  121.  
  122. function addlist(){ 
  123. for(i=0;i<addli;i++){ 
  124. var html = a.find("ul li").eq(i).html(); 
  125. a.find("ul").append("<li>"+html+"</li>");  
  126. a.find("ul").css({"width":(w_li+margin_li*2)*(lisize+addli)}); 
  127. //console.log(a.find("ul li").size()); 
  128. function photoscroll(){ 
  129. a.find(".ps_pre").on("click",function(){//console.log(num);  
  130. now--; 
  131. if(now >= 0){  
  132. a.find("ul").animate({"margin-left":-now*num*(w_li+margin_li*2)}); 
  133. btnshow(now,parseInt((lisize+addli)/num),lisize,num); 
  134. }); 
  135.  
  136. a.find(".ps_next").on("click",function(){//console.log(num);  
  137. now++; 
  138. if(now < (lisize+addli)/num){  
  139. a.find("ul").animate({"margin-left":-now*num*(w_li+margin_li*2)}); 
  140. btnshow(now,parseInt((lisize+addli)/num),lisize,num); 
  141. }  
  142. });  
  143. btnshow(now,parseInt((lisize+addli)/num),lisize,num);  
  144. /*** 
  145. 參數說明: 
  146. now:當前是第幾組,默認是0 
  147. c:總共有幾組 
  148. d:初始化時li的個數 
  149. e:每組顯示li個數 
  150. ***/ 
  151. function btnshow(now,c,d,e){ 
  152. if(d<=e){//如果初始化時li的個數小于一組要顯示的數,則不顯示pre和next按鈕 
  153. a.find(".ps_next").hide(); 
  154. a.find(".ps_pre").hide(); 
  155. }else if(now==0){//初始化now=0,顯示第一組,只顯示next 
  156. a.find(".ps_next").show(); 
  157. a.find(".ps_pre").hide();  
  158. }else if(now==c-1){//顯示到最后一組,只顯示pre 
  159. a.find(".ps_next").hide(); 
  160. a.find(".ps_pre").show();  
  161. }else{//顯示中間組,pre和next都需要顯示 
  162. a.find(".ps_next").show(); 
  163. a.find(".ps_pre").show(); 
  164.  
  165. })(jQuery);  
  166. $.photolist($("#activity-slide")); 
  167. </script> 

css部分:

 

 
  1. @charset "utf-8"
  2. body, div, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, code, form, fieldset, legend, button, textarea, table, tbody, tfoot, thead, th, td, article, aside, dialog, figure, footer, header, hgroup, menu, nav, section, time, mark, audio, video { margin: 0; padding: 0; outline:nonebackground:transparent; 
  3. article, aside, dialog, figure, footer, header, hgroup, nav, section { display: block; } 
  4. body, button, input, select, textarea { font: 12px/1.5 arial, /5b8b/4f53, sans-serif; } 
  5. h1, h2, h3, h4, h5, h6, button, input, select, textarea { font-size: 100%; outline: none } 
  6. address, cite, dfn, em, var { font-style: normal; } 
  7. code, kbd, pre, samp { font-family: courier new, courier, monospace; } 
  8. small { font-size: 12px; } 
  9. ul, ol, li { list-style: none; } 
  10. img { border: none; } 
  11. a { text-decoration: none; outline: thin none; } 
  12. a:hover { text-decoration: underline; } 
  13. table { border-collapse: collapse; border-spacing: 0; } 
  14. .clear { clear: both; } 
  15. .clearfix:after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; } 
  16. html { -webkit-text-size-adjust: none; } 
  17. body { font: 12px/1.5 /5FAE/8F6F/96C5/9ED1, tahoma, arial, /5b8b/4f53, sans-serif; } 
  18.  
  19.  
  20.  
  21. .grid-960 .wapper { width: 100%; min-width:960px;height: auto; margin: 0 auto; background: url(../images/bg-body-960.jpg) no-repeat center top; } 
  22. .grid-1180 .wapper { width: 100%; min-width:1180px;height: auto; margin: 0 auto; background: url(../images/bg-body-1180.jpg) no-repeat center top; } 
  23. .grid-1410 .wapper { width: 100%; min-width:1410px;height: auto; margin: 0 auto; background: url(../images/bg-body-1410.jpg) no-repeat center top; } 
  24.  
  25. /*熱門活動*/ 
  26. .grid-960 .section { width: 960px; margin: 0 auto;background-color:#eaf2ff; } 
  27. .grid-1180 .section { width: 1180px; margin: 0 auto;background-color:#eaf2ff;} 
  28. .grid-1410 .section { width: 1410px; margin: 0 auto;background-color:#eaf2ff;} 
  29.  
  30. .title{padding:0 102px;height:70px;line-height:70px;font-size:24px;font-weight:normal;color:#fff;text-shadow: 0 3px #df2828, 3px 0 #df2828;background:#cc2223 url(../images/bg-title.jpg) no-repeat left top;} 
  31.  
  32. .viewall:hover{text-decoration:none;} 
  33. .viewall{font-size:18px;;color:#fff;text-shadow: 0 3px #df2828, 3px 0 #df2828;float:right;} 
  34.  
  35. .grid-1410 .title {padding:0 116px;background-image:url(../images/bg-title-1410.jpg);} 
  36.  
  37. .grid-960 .contentwrap{width:800px;margin:0 auto;} 
  38. .grid-1180 .contentwrap{width:980px;margin:0 auto;} 
  39. .grid-1410 .contentwrap{width:1180px;margin:0 auto;} 
  40.  
  41. .grid-960 .activity{width:826px;height:152px;overflow:hidden;margin:0 auto;position:relative;} 
  42. .grid-1180 .activity{width:1020px;height:192px;overflow:hidden;margin:0 auto;position:relative;} 
  43. .grid-1410 .activity{width:1230px;height:232px;overflow:hidden;margin:0 auto;position:relative;} 
  44.  
  45. .grid-960 .activity ul{height:152px;overflow:hidden;} 
  46. .grid-1180 .activity ul{height:192px;overflow:hidden;} 
  47. .grid-1410 .activity ul{height:232px;overflow:hidden;} 
  48.  
  49. .activity li img{display:block;width:100%;height:100%;} 
  50. .activity li{display:block;float:left;} 
  51.  
  52. .grid-960 .activity li{width:250px;height:125px;overflow:hidden;margin:12px;} 
  53. .grid-1180 .activity li{width:300px;height:150px;overflow:hidden;margin:20px;} 
  54. .grid-1410 .activity li{width:360px;height:180px;overflow:hidden;margin:25px;} 
  55. /*js切換*/ 
  56. .pg_left,.pg_right {position: absolute;z-index: 999;width: 35px;height: 50px;overflow: hidden;} 
  57. .pg_right {background: transparent url(../images/pg_right.png) no-repeat scroll 5px 7px;} 
  58. .pg_right:hover {background: transparent url(../images/hover.png) no-repeat scroll 0 0;} 
  59. .grid-960 .pg_right{top:75px;right:16px;margin-top:-25px;} 
  60. .grid-1180 .pg_right{top:95px;right:20px;margin-top:-25px;} 
  61. .grid-1410 .pg_right{top:115px;right:25px;margin-top:-25px;} 
  62.  
  63. .pg_left {background: transparent url(../images/pg_left.png) no-repeat scroll 5px 7px;} 
  64. .pg_left:hover {background: transparent url(../images/hover.png) no-repeat scroll right 0;} 
  65. .grid-960 .pg_left{top:75px;left:13px;margin-top:-25px;} 
  66. .grid-1180 .pg_left{top:95px;left:20px;margin-top:-25px;} 
  67. .grid-1410 .pg_left{top:115px;left:25px;margin-top:-25px;} 

以上就是本文的全部內容,希望對大家的學習有所幫助。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲人成网站色ww在线| 亚洲第一福利网| 国产精品久久久久久久久影视| 成人精品网站在线观看| 亚洲国产精品悠悠久久琪琪| 日韩免费观看视频| 日韩专区在线观看| 91香蕉嫩草神马影院在线观看| 国产91在线播放九色快色| 精品国偷自产在线| 免费91麻豆精品国产自产在线观看| 久久91亚洲精品中文字幕奶水| 91在线视频精品| 91av网站在线播放| 国产一区二区三区四区福利| 欧美自拍视频在线| 欧洲美女免费图片一区| 日韩中文字幕第一页| 精品成人av一区| 91在线视频导航| 国产精品久在线观看| 欧美一级视频免费在线观看| 国产精品国产三级国产aⅴ浪潮| 日韩免费在线视频| 亚洲一区二区三区四区视频| 97碰在线观看| 欧美视频中文字幕在线| 国产日韩精品在线播放| 国产精品福利在线观看| 欧美高清第一页| 久久久伊人欧美| 亚洲人成网站999久久久综合| 欧美另类xxx| 中文字幕亚洲综合久久筱田步美| 日本亚洲欧美三级| 亚洲高清一区二| 亚洲欧美日韩精品久久奇米色影视| 欧美日韩精品在线播放| 久久久久久午夜| 欧美精品videofree1080p| 久久电影一区二区| 国产精品99久久久久久久久久久久| 少妇av一区二区三区| 日韩精品免费在线观看| 久久综合国产精品台湾中文娱乐网| 精品国产拍在线观看| 亚洲影视九九影院在线观看| 91久久久久久久久| 92福利视频午夜1000合集在线观看| 日韩激情在线视频| 91久热免费在线视频| 中文字幕成人精品久久不卡| 亚洲一区二区在线播放| 亚洲第一页自拍| 久久精品国产精品| 精品国产一区二区三区四区在线观看| 亚洲国产精久久久久久| 日韩激情第一页| 国产亚洲人成a一在线v站| 亚洲一区二区久久| 精品免费在线视频| 日韩电影中文 亚洲精品乱码| 一区二区三区高清国产| 久久久久国产精品www| 亚洲综合成人婷婷小说| 日韩美女在线播放| 最近2019年手机中文字幕| 福利视频导航一区| 亚洲欧美在线免费| 亚洲精品小视频在线观看| 日韩精品在线免费观看视频| 欧美成人免费小视频| 91精品国产91久久久久| 热99久久精品| 亚洲综合av影视| 欧美资源在线观看| 亚洲一区二区少妇| 欧美性xxxxxxx| 色狠狠av一区二区三区香蕉蜜桃| 亚洲一级黄色片| 亚洲一区二区三区乱码aⅴ| 成人网欧美在线视频| 国产午夜一区二区| 一区二区av在线| 亚洲精品视频在线观看视频| 欧美激情在线有限公司| 日韩精品视频在线免费观看| 亚洲一区亚洲二区亚洲三区| 国产99在线|中文| 日韩在线观看你懂的| 亚洲免费一级电影| 亚洲精品99999| 亚洲性视频网址| 欧美日韩午夜视频在线观看| 成人av在线亚洲| 91在线观看免费高清完整版在线观看| 97成人超碰免| 亚洲a区在线视频| 国产精品女人久久久久久| 最近免费中文字幕视频2019| 91在线观看免费观看| 性欧美办公室18xxxxhd| 91九色国产社区在线观看| 97久久国产精品| 不卡av在线网站| 91欧美日韩一区| 国外成人在线直播| 亚洲精品一区av在线播放| 日韩少妇与小伙激情| 日日摸夜夜添一区| 国产精品偷伦免费视频观看的| 91影视免费在线观看| 91久久嫩草影院一区二区| 97香蕉超级碰碰久久免费软件| 欧美精品电影免费在线观看| 91精品久久久久久久久不口人| 91精品久久久久久久| 亚洲国产精品久久久久秋霞不卡| 国产午夜精品一区二区三区| 亚洲人成欧美中文字幕| 欧美性生交xxxxxdddd| 亚洲欧美资源在线| 国产日韩综合一区二区性色av| 亚洲色图欧美制服丝袜另类第一页| 精品久久久一区二区| 亚洲欧美中文日韩在线v日本| 亚洲国产欧美日韩精品| 久久精品在线视频| 亚洲综合社区网| 中文字幕亚洲情99在线| 精品福利一区二区| 国产亚洲精品va在线观看| 日韩中文字幕视频在线| 久久久久久一区二区三区| 一区二区亚洲精品国产| 亚洲精品小视频在线观看| 2018国产精品视频| 一本色道久久综合狠狠躁篇的优点| 91国产美女在线观看| 国产精品精品一区二区三区午夜版| 一区二区国产精品视频| 亚洲人精选亚洲人成在线| 国产成人小视频在线观看| 精品中文视频在线| 国产性猛交xxxx免费看久久| 国产一区二区三区在线观看网站| 日韩毛片在线看| 欧美日韩另类字幕中文| 国产精品成熟老女人| 欧美日韩美女在线| 亚洲影视九九影院在线观看| 91久久精品日日躁夜夜躁国产| 日韩中文字幕在线视频播放| 一区二区三区日韩在线| 亚洲人永久免费| 黄色一区二区在线观看| 精品国产乱码久久久久久虫虫漫画| 97avcom| 在线成人一区二区| 国产精品三级在线| 中文字幕亚洲一区在线观看| 91精品国产网站| 国产午夜精品全部视频播放| 日韩av中文字幕在线免费观看|