;(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("
  • "+i+"
  • ") } 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);