麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

基于jquery實(shí)現(xiàn)左右按鈕點(diǎn)擊的圖片切換效果

2024-05-06 16:25:03
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

jQuery可以制作出與Flash媲美的動(dòng)畫效果,這點(diǎn)絕對(duì)毋庸置疑,本文將通過(guò)實(shí)例演示一個(gè)左右按鈕點(diǎn)擊的圖片切換效果。

一、最終效果

基于jquery實(shí)現(xiàn)左右按鈕點(diǎn)擊的圖片切換效果

二、功能分析

1、需求分析

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

2、html結(jié)構(gòu)分析

 

 
  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是整個(gè)幻燈的入口,后面會(huì)將其作為參數(shù)來(lái)調(diào)用幻燈功能。

兩個(gè)按鈕ps_pre和ps_next將添加click事件響應(yīng)點(diǎn)擊切換功能。

3、功能分析

因?yàn)樽笥仪袚Q都是三個(gè)為一組的切換,如果li總個(gè)數(shù)不是3的倍數(shù)時(shí),需要增加li節(jié)點(diǎn)填滿。

 

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

上面是判斷得到需要追加的個(gè)數(shù)lisize,然后調(diào)用addlist追加。

addlist如下,從ul的第一個(gè)li開始復(fù)制,需要幾個(gè)就復(fù)制出幾個(gè)節(jié)點(diǎn)追加。節(jié)點(diǎn)追加完畢后重新計(jì)算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)}); 

現(xiàn)在準(zhǔn)備工作已經(jīng)完成了。接下來(lái)就是給按鈕添加響應(yīng)事件。在幻燈切換時(shí)涉及到左右按鈕的顯示和隱藏,所以先說(shuō)這個(gè)按鈕顯示功能,將此分裝成一個(gè)函數(shù)btnshow。

 

 
  1. /*** 
  2. 參數(shù)說(shuō)明: 
  3. now:當(dāng)前是第幾組,默認(rèn)是0 
  4. c:總共有幾組 
  5. d:初始化時(shí)li的個(gè)數(shù) 
  6. e:每組顯示li個(gè)數(shù) 
  7. ***/ 
  8. function btnshow(now,c,d,e){ 
  9. if(d<=e){//如果初始化時(shí)li的個(gè)數(shù)小于一組要顯示的數(shù),則不顯示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(); 

接下來(lái)幻燈切換。這里a是傳入的參數(shù),也就是 #activity-slide。給它下面的所以的pre和next添加響應(yīng)。

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

向后滑動(dòng)一組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);  

三、實(shí)例代碼

1、用到圖片

基于jquery實(shí)現(xiàn)左右按鈕點(diǎn)擊的圖片切換效果

基于jquery實(shí)現(xiàn)左右按鈕點(diǎn)擊的圖片切換效果

基于jquery實(shí)現(xiàn)左右按鈕點(diǎn)擊的圖片切換效果

基于jquery實(shí)現(xiàn)左右按鈕點(diǎn)擊的圖片切換效果

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>//初始化狀態(tài)顯示樣式判斷,放在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">熱門活動(dòng)</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. //首頁(yè)圖片滾動(dòng)切換 
  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. //判斷每次滾動(dòng)數(shù)量 
  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節(jié)點(diǎn)數(shù)量 
  83. var reminder=lisize%num; 
  84. if(lisize%num!=0){addli = num-reminder;} 
  85. else{addli = 0;} 
  86. addlist(); 
  87. //點(diǎn)擊滾動(dòng)事件 
  88. photoscroll(); 
  89.  
  90. $(window).resize(function(){ 
  91. //location.reload(); 
  92. now = 0; 
  93. addli = 0; 
  94. a.find("ul").html(htmlall);//html內(nèi)容還原初始值 
  95. a.find(".ps_next").show();//按鈕樣式初始化 
  96. a.find(".ps_pre").hide(); 
  97. //判斷每次滾動(dòng)數(shù)量 
  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節(jié)點(diǎn)數(shù)量 
  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. 參數(shù)說(shuō)明: 
  146. now:當(dāng)前是第幾組,默認(rèn)是0 
  147. c:總共有幾組 
  148. d:初始化時(shí)li的個(gè)數(shù) 
  149. e:每組顯示li個(gè)數(shù) 
  150. ***/ 
  151. function btnshow(now,c,d,e){ 
  152. if(d<=e){//如果初始化時(shí)li的個(gè)數(shù)小于一組要顯示的數(shù),則不顯示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. /*熱門活動(dòng)*/ 
  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;} 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JavaScript/Ajax教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 午夜视频在线免费 | 欧美成人高清在线 | 在线观看国产 | 中文字幕网在线 | 国产一级一国产一级毛片 | 久久久久久久久亚洲精品 | 国产精品久久久久久久娇妻 | 欧美日韩免费观看视频 | 羞羞色院91精品网站 | 欧美四级在线观看 | 免费试看av| 久久精品一区二区三区国产主播 | 国产亚洲精品久久久久久久久久 | 亚洲四播房 | 成人情欲视频在线看免费 | 99ri在线| 午夜伦情电午夜伦情电影 | 久草在线手机视频 | 久久久久一区二区三区四区五区 | 亚洲生活片 | 久久久麻豆 | h色网站在线观看 | 免费一级毛片在线播放不收费 | 欧美三级日本三级少妇99 | 伦理三区 | 国产69精品久久久久久 | 成人在线视频在线观看 | 一级做人爱c黑人影片 | 午夜a狂野欧美一区二区 | 亚洲第一视频在线 | 亚洲欧美日韩免费 | 日韩av官网| 深夜视频福利 | 97香蕉超级碰碰久久免费软件 | 国产精品自在线拍 | 视频一区二区三区免费观看 | 禁漫天堂久久久久久久久久 | 午夜视频在线在免费 | 一级做a爱片毛片免费 | 精品一区二区电影 | 国产精品久久久久久久久久久久久久久 |