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

首頁 > 語言 > JavaScript > 正文

jquery制作多功能輪播圖插件

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

本文給大家分享的是一款基于jQuery制作的多功能的輪播幻燈插件,支持多種配置,十分的實用,這里推薦給大家,有需要的小伙伴可以參考下。

這是一款多功能幻燈片插件,支持多種配置,css樣式是扒的網上的,里面的代碼原創,輕噴~

 

 
  1. ;(function($) { 
  2. "use strict"
  3. var methods = { 
  4. o : { 
  5. next: "#cycle-next"
  6. prev: "#cycle-prev"
  7. pager : "#cycle-nav"
  8. slider : "#beauty-slider"
  9. timeLine : "#timeLine"
  10. innerTimeLine : "#inner-timeLine"
  11. timeLineNode : "#timeLine-node"
  12. sliderItemClass : "sliderItem"
  13. nodeActive : "node_active"
  14. displays : {fade : "fade",left : "left",right : "right",top : "top",bottom : "bottom"}, 
  15. navHtml : "<a href='javascript:;' class='&'>?</a>"
  16. navConfig : {navBoxClass : "cycle-nav", navActiveClass: "activeSlide" ,showNum : true
  17. }, 
  18. generateId : function(){ 
  19. return "-" + new Date().getTime(); 
  20. }, 
  21. generateTemplate : function(id,settings){ 
  22. var htmls = new Array(); 
  23. htmls.push('<div class="slider-wrap">'); 
  24. htmls.push('<div class="cycleslider-wrap">'); 
  25. htmls.push('<div id="beauty-slider' + id + '" class="cycleslider"></div>'); 
  26. if(settings.isArrow) { 
  27. htmls.push('<a id="cycle-prev' + id + '" class="cycle-prev" href="javascript:;" title="試試左方向鍵翻頁">Prev</a>'); 
  28. htmls.push('<a id="cycle-next' + id + '" class="cycle-next" href="javascript:;" title="試試右方向鍵翻頁">Next</a>'); 
  29. if(settings.showTimeLine) { 
  30. htmls.push('<div class="timeLine" id="timeLine' + id + '">'); 
  31. htmls.push('<div class="innerTimeLine" id="inner-timeLine' + id + '" style="width:0px;"></div>'); 
  32. htmls.push('<div id="timeLine-node' + id + '"></div>'); 
  33. htmls.push('</div>'); 
  34. if(settings.isNav) { 
  35. htmls.push('<div id="cycle-nav' + id + '" class="cycle-nav"></div>'); 
  36. htmls.push('</div>'); 
  37. htmls.push('<div class="loader"></div>'); 
  38. htmls.push('</div>'); 
  39. return htmls; 
  40. }, 
  41. init : function(dom, options) { 
  42. var s = this
  43. var defaults = { url : "", data : {} , auto : false ,time : 2000, overLay : false, isArrow : true, isNav : true ,showTimeLine : false,showTip : false, keyboard : true, display : s.o.displays.fade,navConfig : s.o.navConfig}; 
  44. var settings = $.extend({},defaults, options); 
  45. var id = s.generateId(); 
  46. $(".slider-wrap .loader").show(); 
  47. var imgArray = s.returnImgArray(dom, settings); 
  48. if (imgArray != null && imgArray.length > 0) { 
  49. s["imgcnt" + id] = imgArray.length; 
  50. $(dom).html(s.generateTemplate(id,settings).join('')).show(); 
  51. var slider = $(s.o.slider + id); 
  52. var pager = $(s.o.pager + id); 
  53. var timeLineNode = $(s.o.timeLineNode + id); 
  54. s.o.innerW = $(dom).width() - 20; 
  55. var imgHtml = ""
  56. var pageHtml = ""
  57. var timeHtml = ""
  58. $.each(imgArray,function(index,item){ 
  59. var picClass = index == 0 ? s.o.sliderItemClass : s.o.sliderItemClass + " none"
  60. var navClass = index == 0 ? settings.navConfig.navActiveClass : ""
  61. imgHtml +='<div class="' + picClass + '"><a href="'+ ( s.isParamValid(item.picUrl) ? item.picUrl : "javascript:;" ) +'"><img src="' + item.picPath + '" width="'+item.width+'" height="' +item.height+ '" title="' + item.title + '"/></a></div>'; 
  62. pageHtml += s.o.navHtml.replace("?", settings.navConfig.showNum ? index + 1 : "").replace("&", navClass); 
  63. var left = s.o.innerW * index / s["imgcnt" + id] - 13; 
  64. var nodeClass = index == 0 ? s.o.nodeActive : ""
  65. timeHtml +='<div class="node ' + nodeClass + '" style="left: ' + left + 'px;">'
  66. if(settings.showTip) { 
  67. timeHtml +='<div class="tooltip">' + item.title + '</div>'
  68. timeHtml +='</div>'
  69. }); 
  70. slider.html(imgHtml); 
  71. if(settings.isNav) { 
  72. if(settings.navConfig.navBoxClass) { 
  73. pager.removeClass(s.o.navConfig.navBoxClass).addClass(settings.navConfig.navBoxClass); 
  74. pager.html(pageHtml); 
  75. if(settings.showTimeLine) { 
  76. timeLineNode.html(timeHtml); 
  77. slider.width(s.o.innerW); 
  78. slider.find("." + s.o.sliderItemClass).width(s.o.innerW); 
  79. $(s.o.timeLine + id).width(s.o.innerW); 
  80. if(settings.overLay) { 
  81. if($.fn.layerModel) { 
  82. $(dom).layerModel({staySame : true, blurClose : true}); 
  83. else { 
  84. alert("請先引入layerModel插件!"); 
  85. s.initBind(id, settings); 
  86. s["currentIndex" + id] = 0; 
  87. var totalTime = settings.time / 1000 * s["imgcnt" + id]; 
  88. if(settings.auto) { 
  89. if(settings.showTimeLine) { 
  90. s.startTimeLine(id , totalTime,settings); 
  91. else { 
  92. s.o.timeInterval = window.setInterval(function(){ 
  93. $("#cycle-next" + id).click(); 
  94. }, settings.time); 
  95. else { 
  96. return
  97. return dom; 
  98. }, 
  99. startTimeLine : function(id ,time, settings) { 
  100. var s = this
  101. var $innerTimeLine = $(s.o.innerTimeLine + id); 
  102. var crnW = $innerTimeLine.width(); 
  103. for (var i = 0; i < s["imgcnt" + id]; i++) { 
  104. var autoW = Math.floor(s.o.innerW * i / s["imgcnt" + id]); 
  105. if(crnW == autoW) { 
  106. s["currentIndex" + id] = i; 
  107. s.updateImgLink(id, settings); 
  108. $(s.o.timeLineNode + id).find("div.node").eq(i).addClass(s.o.nodeActive).siblings().removeClass(s.o.nodeActive); 
  109. if(crnW < s.o.innerW) { 
  110. $innerTimeLine.animate({width : "+=1px"}, time , 'linear'function(){ 
  111. s.startTimeLine(id, time, settings); 
  112. }); 
  113. else { 
  114. $innerTimeLine.width(0); 
  115. s.startTimeLine(id, time, settings); 
  116. }, 
  117. initBind :function(id, settings) { 
  118. var s = this
  119. var isEasing = $.easing.def; 
  120. if(settings.isArrow) { 
  121. $("#cycle-prev" + id + ", #cycle-next" + id).css({opacity: "0"}); 
  122. $(".cycleslider-wrap").hover(function(){ 
  123. $("#cycle-prev" + id).stop().animate({left: "-31", opacity: "1"},200,isEasing ? "easeOutCubic" : ""); 
  124. $("#cycle-next" + id).stop().animate({right: "-31", opacity: "1"},200,isEasing ?"easeOutCubic" : "");  
  125. }, function() { 
  126. $("#cycle-prev" + id).stop().animate({left: "-50", opacity: "0"},400,isEasing ?"easeInCubic" : ""); 
  127. $("#cycle-next" + id).stop().animate({right: "-50", opacity: "0"},400,isEasing ?"easeInCubic" : "");  
  128. }); 
  129. $("#cycle-prev" + id).bind("click",function(){ 
  130. s["currentIndex" + id] = s["currentIndex" + id] <= 0 ? s["imgcnt" + id] - 1 : s["currentIndex" + id] - 1; 
  131. s.updateImgLink(id,settings); 
  132. }); 
  133. $("#cycle-next" + id).bind("click",function(){ 
  134. s["currentIndex" + id] = s["currentIndex" + id] < s["imgcnt" + id] - 1 ? s["currentIndex" + id] + 1 : 0; 
  135. s.updateImgLink(id,settings); 
  136. }); 
  137. $(".slider-wrap .loader").hide(); 
  138. $("a",s.o.pager + id).bind("click",function(){ 
  139. if ($(this).hasClass(s.o.navConfig.navActiveClass)){ 
  140. return false
  141. s["currentIndex" + id] = $(this).index(); 
  142. s.updateImgLink(id,settings); 
  143. }); 
  144.  
  145. if(settings.auto && settings.showTimeLine) { 
  146. $("div.node",s.o.timeLineNode + id).bind({ 
  147. click : function(){ 
  148. if($(this).hasClass(s.o.nodeActive)){ 
  149. return false
  150. s["currentIndex" + id] = $(this).index(); 
  151. s.updateImgLink(id,settings); 
  152. }, 
  153. mouseover : function(){ 
  154. if(settings.showTip) { 
  155. $(this).find(".tooltip").fadeIn(); 
  156. }, 
  157. mouseout : function(){ 
  158. if(settings.showTip) { 
  159. $(this).find(".tooltip").fadeOut(); 
  160. }); 
  161. // 鍵盤操作 
  162. if(settings.keyboard){ 
  163. $(window).keydown(function(event){ 
  164. //<--- 
  165. if(event.keyCode == 37){ 
  166. $("#cycle-prev" + id).click(); 
  167. //---> 
  168. if(event.keyCode == 39){ 
  169. $("#cycle-next" + id).click(); 
  170. }); 
  171. }, 
  172. updateImgLink : function(id, settings){ 
  173. var s = this
  174. var index = s["currentIndex" + id]; 
  175. var display = settings.display; 
  176. var isEasing = $.easing.def; 
  177. var $items = $("div." + s.o.sliderItemClass,s.o.slider + id); 
  178. switch (display) { 
  179. case s.o.displays.fade : 
  180. $items.eq(index).show().siblings().hide(); 
  181. break
  182. case s.o.displays.left : 
  183. $items.css({ position : "absolute", top : 0, left : s.o.innerW }).hide(); 
  184. $items.eq(index).animate({ left : 0 }, 100, isEasing ? "easeOutCubic" : "").show(); 
  185. $(s.o.slider + id).height(s.getImgMaxHeight(id)); 
  186. break
  187. case s.o.displays.right : 
  188. $items.css({ position : "absolute", top : 0, right : s.o.innerW }).hide(); 
  189. $items.eq(index).animate({ right : 0 }, 100, isEasing ? "easeOutCubic" : "").show(); 
  190. $(s.o.slider + id).height(s.getImgMaxHeight(id)); 
  191. break
  192. case s.o.displays.top : 
  193. break
  194. case s.o.displays.bottom :  
  195. break
  196. default : 
  197. break
  198. $("a",s.o.pager + id).eq(index).addClass(settings.navConfig.navActiveClass).siblings().removeClass(settings.navConfig.navActiveClass); 
  199. // 更新進度條的信息 
  200. if(settings.auto && settings.showTimeLine) { 
  201. var indexWidth = Math.floor(s.o.innerW * index / s["imgcnt" + id]); 
  202. $(s.o.innerTimeLine + id).animate({width : indexWidth +"px"}, 500 , 'linear'function(){ 
  203. $(s.o.timeLineNode + id).find("div.node").eq(index).addClass(s.o.nodeActive).siblings().removeClass(s.o.nodeActive); 
  204. }); 
  205. }, 
  206. getImgMaxHeight : function(id) { 
  207. var s = this
  208. var slider = $(s.o.slider + id); 
  209. var maxHeight = 0; 
  210. $.each(slider.find("img"),function(index,item){ 
  211. var imgHeight = this.height; 
  212. maxHeight = Math.max(maxHeight,imgHeight); 
  213. }); 
  214. return maxHeight; 
  215. }, 
  216. returnImgArray : function(dom,settings){ 
  217. var s = this
  218. var imgArray = new Array(); 
  219. var url = settings.url; 
  220. if (s.isParamValid(url)) { 
  221. $.ajax({ 
  222. url : url + "?t=" + new Date().getTime(), 
  223. type : 'POST'
  224. async : false
  225. data : settings.data, 
  226. dataType : 'json'
  227. success : function(data) { 
  228. if (s.isParamValid(data)) { 
  229. $.each(data, function(index, item) { 
  230. imgArray.push(item); 
  231. }); 
  232. }, 
  233. error : function() { 
  234. alert("圖片數據源地址無效..."); 
  235. return null
  236. }, 
  237. complete : function(XHR, TS) { XHR = null; } 
  238. }); 
  239. else { 
  240. var imgs = $(dom).find("img"); 
  241. if (imgs != null && imgs.length > 0) { 
  242. $.each(imgs,function(i,o){ 
  243. var pic = new Object(); 
  244. pic.picUrl = $(o).parent("a").attr("href"); 
  245. pic.picPath = $(o).attr("src"); 
  246. pic.width = $(o).attr("width"); 
  247. pic.height = $(o).attr("height"); 
  248. pic.title = $(o).attr("title"); 
  249. imgArray.push(pic); 
  250. }); 
  251. return imgArray; 
  252. }, 
  253. isParamValid : function(v) { 
  254. return !(v == "" || v == null || v == undefined); 
  255. }; 
  256. $.fn.beautyFocus = function(options) { 
  257. return this.each(function(index,item) { 
  258. methods.init(item, options);  
  259. }); 
  260. }; 
  261. })(jQuery); 

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美又大粗又爽又黄大片视频| 欧美老女人在线视频| 亚洲3p在线观看| 久久精品99无色码中文字幕| 亚洲新声在线观看| 色99之美女主播在线视频| 国产91精品网站| 九九热精品视频国产| 久久久久久久香蕉网| 日韩欧美成人精品| 亚洲免费av电影| 国产成人jvid在线播放| 欧美老少配视频| 精品一区电影国产| 中文国产亚洲喷潮| 久久中文精品视频| 欧美理论电影在线播放| 亚洲国产精品99| 亚洲男子天堂网| 亚洲视频在线观看视频| 98精品在线视频| 亚洲国产欧美一区| 国产日韩欧美在线看| 日本午夜人人精品| 伊人久久精品视频| 国产精品久久久久久久午夜| 国模精品一区二区三区色天香| 日本不卡免费高清视频| www日韩欧美| 国产福利视频一区二区| 精品激情国产视频| 国产精品高潮粉嫩av| 欧美日韩不卡合集视频| 国产在线观看91精品一区| 成人免费视频在线观看超级碰| 中国日韩欧美久久久久久久久| 国自在线精品视频| 国产大片精品免费永久看nba| 久久国产色av| 91在线精品视频| 国产精品专区h在线观看| 欧美激情免费在线| 欧美激情视频网站| 欧美视频在线视频| 久久久久久久久久国产| 国产丝袜一区二区三区| 操日韩av在线电影| 欧美噜噜久久久xxx| 日韩小视频在线| 亚洲国产欧美日韩精品| 亚洲男人天堂古典| 色妞在线综合亚洲欧美| 日韩在线资源网| 亚洲电影在线观看| 欧美激情二区三区| 日韩在线播放av| 亚洲欧美激情精品一区二区| 热99精品只有里视频精品| 欧美日韩裸体免费视频| 精品中文字幕久久久久久| 欧美在线免费观看| 国产日韩在线看片| wwwwwwww亚洲| 国产精品99一区| 国产美女直播视频一区| 精品久久久久久亚洲国产300| 日韩av免费观影| 琪琪亚洲精品午夜在线| 亚洲人成在线电影| 亚洲999一在线观看www| 色香阁99久久精品久久久| 国产999精品久久久| 欧美激情精品久久久久久久变态| 日韩精品极品视频免费观看| 国产精品成人免费电影| 亚洲成人精品av| 国产精品无码专区在线观看| 国产精品免费一区二区三区都可以| 亚洲一区二区中文| 亚洲天堂网站在线观看视频| 欧美大尺度激情区在线播放| 久久久av亚洲男天堂| 色悠久久久久综合先锋影音下载| 国产精品日韩久久久久| 亚洲欧美一区二区三区久久| 日韩少妇与小伙激情| 久久久久久久香蕉网| 日本精品久久久久久久| 成人亚洲欧美一区二区三区| 欧美激情一区二区三区高清视频| 不卡毛片在线看| 中文字幕在线日韩| 久久人人爽人人爽人人片av高清| 日韩在线观看免费高清| 九九九热精品免费视频观看网站| 亚洲国产精彩中文乱码av在线播放| 国自产精品手机在线观看视频| 日韩在线观看av| 色综合亚洲精品激情狠狠| 久久在线免费观看视频| 欧美三级免费观看| 欧美电影《睫毛膏》| 久久久久久免费精品| 亚洲影院色在线观看免费| 一区二区三欧美| 国产欧美va欧美va香蕉在线| 国产久一一精品| 欧美另类极品videosbest最新版本| 美女扒开尿口让男人操亚洲视频网站| 日本精品免费一区二区三区| 全球成人中文在线| 成人国产精品久久久| 成人国产在线激情| 国产香蕉97碰碰久久人人| 欧美制服第一页| 国产精品成人aaaaa网站| 国产最新精品视频| 都市激情亚洲色图| 国产精品观看在线亚洲人成网| 在线播放日韩欧美| 国产精品爽爽爽爽爽爽在线观看| 日韩高清免费观看| www国产精品视频| 久久99精品久久久久久噜噜| 一本一本久久a久久精品牛牛影视| 久久视频在线免费观看| 91最新国产视频| 久久国产精品视频| 久久久999成人| 亚洲男女自偷自拍图片另类| 日韩亚洲综合在线| 亚洲社区在线观看| 欧美日韩亚洲视频一区| 国产精品网站入口| 久久久久久久久久久免费| 97超碰色婷婷| 91热福利电影| 欧美一区二区大胆人体摄影专业网站| 日韩av高清不卡| 国产精品美女视频网站| 91九色国产在线| 久久久久久噜噜噜久久久精品| 亚洲天堂成人在线视频| 色综合伊人色综合网站| 国产视频精品va久久久久久| 欧美成人在线网站| 国产91亚洲精品| 中文字幕自拍vr一区二区三区| 久久久久久久久久婷婷| 亚洲人成网在线播放| 国内精品在线一区| 国产91精品不卡视频| 欧美激情视频在线观看| 国产欧美在线播放| 亚洲石原莉奈一区二区在线观看| 亚洲综合最新在线| 国产午夜精品免费一区二区三区| 久久久免费高清电视剧观看| 亚洲a在线播放| 欧美精品在线免费观看| 国产精品91久久久| 国产精品一区二区久久久| 黑人巨大精品欧美一区二区免费| 欧美精品久久久久久久久久|