;(function($){ $.fn.carousel = function(param){ var carousel = param.carousel; var list = $(carousel).children("li"); var indexContainer = param.indexContainer; var prev = param.prev; var next = param.next; var timing = param.timing; var animateTime = param.animateTime; var auto = param.auto; var timer; for(var i = 1;i <= list.length;i++){ $(indexContainer).append("
  • "+""+"
  • ") } var indexList = $(indexContainer).children("li"); $(list[0]).addClass("on").fadeIn(animateTime); $(indexList[0]).addClass("index") if(auto){ startTiming(); /*鼠标进入停止计时,离开开始计时*/ $(carousel+","+prev+","+next+","+indexContainer).hover(function(){ window.clearInterval(timer); },function(){ startTiming(); }); } /*开始计时方法*/ function startTiming(){ timer = window.setInterval("$.switchImg();",timing); }; $(prev).off("click").on("click",function(){ var on = $(carousel).children(".on"); on.stop(true,true).fadeOut(animateTime).removeClass("on"); if(on.prev().is("li")){ $.switchIndex($(carousel).children("li").index(on.prev())); on.prev().stop(true,true).addClass("on").delay(animateTime/2).fadeIn(animateTime); }else{ $.switchIndex($(carousel).children("li").index(list[list.length-1])); $(list[list.length-1]).stop(true,true).addClass("on").delay(animateTime/2).fadeIn(animateTime); } }); $(next).off("click").on("click",function(){ var on = $(carousel).children(".on"); on.stop(true,true).fadeOut(animateTime).removeClass("on"); if(on.next().is("li")){ $.switchIndex($(carousel).children("li").index(on.next())); on.next().stop(true,true).addClass("on").delay(animateTime/2).fadeIn(animateTime); }else{ $.switchIndex($(carousel).children("li").index(list[0])); $(list[0]).stop(true,true).addClass("on").delay(animateTime/2).fadeIn(animateTime); } }); $(indexList).off("click").on("click",function(){ if ($(this).attr("class") != "index") { var on = $(carousel).children(".on"); var index = $(this).index(); console.log(index); $(indexList).removeClass("index"); $(indexList[index]).addClass("index"); on.stop(true,true).fadeOut(animateTime).removeClass("on"); $(list[index]).stop(true,true).addClass("on").delay(animateTime/2).fadeIn(animateTime); } }); /*切换当前索引*/ $.extend({switchIndex:function(index){ $(indexList).removeClass("index"); $(indexList[index]).addClass("index"); }}); /*定时切换图片*/ $.extend({switchImg:function(){ var on = $(carousel).children(".on"); on.stop(true,true).fadeOut(animateTime).removeClass("on"); if(on.next().is("li")){ $.switchIndex($(carousel).children("li").index(on.next())); on.next().stop(true,true).addClass("on").delay(animateTime/2).fadeIn(animateTime); }else{ $.switchIndex($(carousel).children("li").index(list[0])); $(list[0]).stop(true,true).addClass("on").delay(animateTime/2).fadeIn(animateTime); } }}); } })(jQuery);