/** * 欢迎使用 kinslideshow 幻灯片『焦点图』插件 * * jquery kinslideshow plugin * ========================================〓说明〓======================================================== * jquery幻灯片插件,基本能满足你在网页上使用幻灯片(焦点图)效果。兼容ie6/ie7/ie8/ie9,firefox,chrome*,opera。 * 想要兼容chrome需要在img标签中写上图片的宽度和高度,其他浏览器不需要。 建议写上宽和高。 * 使用极其方便、简单,外观样式可以自定义,具体定义样式方法和设置其他参数请参见demo文件 * 不需要自己定义焦点图宽度和高度,自动读取图片宽和高,所有图片尺寸要保持一致。 * 所有宽度和高度单位都是像素,设置参数时不需要加单位(px) * ======================================================================================================== * @name jquery.kinslideshow.js * @version 1.1 * @author mr.kin * @date 2010-07-25 * @email:mr.kin@foxmail.com * @qq:87190493 * * 欲索取最新版本kinslideshow或是报告bug,请发送email至 【mr.kin@foxmail.com】 * **/ (function($) { $.fn.kinslideshow = function(settings){ settings = jquery.extend({ intervaltime : 5, //切换展示间隔时间 【单位:秒】 movespeedtime : 400,//切换一张图片所需时间,【单位:毫秒】 movestyle:"left",//切换方向 【 left | right | up | down 】left:向左切换,right:向右切换,up:向上切换,down:向下切换 mouseevent:"mouseclick", //鼠标操作按钮事件,【mouseclick | mouseover】mouseclick:鼠标单击切换。mouseover:鼠标滑过切换。 ishastitlebar:true,//是否显示标题背景, titlebar:{titlebar_height:40,titlebar_bgcolor:"#000000",titlebar_alpha:0.5},//标题背景样式,(ishastitlebar = true 前提下启用) ishastitlefont:true,//是否显示标题文字 titlefont:{titlefont_size:12,titlefont_color:"#ffffff",titlefont_family:"verdana",titlefont_weight:"bold"},//标题文字样式,(ishastitlefont = true 前提下启用) ishasbtn:true, //是否显示按钮 btn:{btn_bgcolor:"#666666",btn_bghovercolor:"#cc0000",btn_fontcolor:"#cccccc",btn_fonthovercolor:"#000000",btn_fontfamily:"verdana",btn_bordercolor:"#999999",btn_borderhovercolor:"#ff0000",btn_borderwidth:1,btn_bgalpha:0.7} //按钮样式设置,(ishasbtn = true 前提下启用) },settings); var titlebar_bak = {titlebar_height:40,titlebar_bgcolor:"#000000",titlebar_alpha:0.5} var titlefont_bak = {titlefont_size:12,titlefont_color:"#ffffff",titlefont_family:"verdana",titlefont_weight:"bold"} var btn_bak = {btn_bgcolor:"#666666",btn_bghovercolor:"#cc0000",btn_fontcolor:"#cccccc",btn_fonthovercolor:"#000000",btn_fontfamily:"verdana",btn_bordercolor:"#999999",btn_borderhovercolor:"#ff0000",btn_borderwidth:1,btn_bgalpha:0.7} //按钮样式设置,(ishasbtn = true 前提下启用) for (var key in titlebar_bak){ if(settings.titlebar[key] == undefined){ settings.titlebar[key] = titlebar_bak[key]; } } for (var key in titlefont_bak){ if(settings.titlefont[key] == undefined){ settings.titlefont[key] = titlefont_bak[key]; } } for (var key in btn_bak){ if(settings.btn[key] == undefined){ settings.btn[key] = btn_bak[key]; } } var kinslideshow_boxobject = this; var kinslideshow_boxobjectselector = $(kinslideshow_boxobject).selector; var kinslideshow_datearray = new array(); var kinslideshow_imgaelength = 0; var kinslideshow_size =new array(); var kinslideshow_changeflag = 0; var kinslideshow_intervaltime = settings.intervaltime; var kinslideshow_setinterval; var kinslideshow_firstmoveflag = true; if(isnan(kinslideshow_intervaltime) || kinslideshow_intervaltime <= 1){ kinslideshow_intervaltime = 5; } if(settings.movespeedtime > 500){ settings.movespeedtime = 500; }else if(settings.movespeedtime < 100){ settings.movespeedtime = 100; } function kinslideshow_initialize(){ $(kinslideshow_boxobject).css({visibility:"hidden"}); $(kinslideshow_boxobjectselector+" a img").css({border:0}); kinslideshow_start(); kinslideshow_mousehover(); }; function kinslideshow_start(){ kinslideshow_imgaelength = $(kinslideshow_boxobjectselector+" a").length; kinslideshow_size.push($(kinslideshow_boxobjectselector+" a img").width()); kinslideshow_size.push($(kinslideshow_boxobjectselector+" a img").height()); $(kinslideshow_boxobjectselector+" a img").each(function(i){ kinslideshow_datearray.push($(this).attr("alt")); }); $(kinslideshow_boxobjectselector+" a").wrapall("
"); $("#kinslideshow_content").clone().attr("id","kinslideshow_contentclone").appendto(kinslideshow_boxobject); kinslideshow_settitlebar(); kinslideshow_settitlefont(); kinslideshow_setbtn(); kinslideshow_action(); kinslideshow_btnevent(settings.mouseevent); $(kinslideshow_boxobject).css({visibility:"visible"}); }; function kinslideshow_settitlebar(){ $(kinslideshow_boxobject).css({width:kinslideshow_size[0],height:kinslideshow_size[1],overflow:"hidden",position:"relative"}); $(kinslideshow_boxobject).append("
"); var gettitlebar_height = settings.titlebar.titlebar_height;//获取面板高度 if(isnan(gettitlebar_height)){ gettitlebar_height = 40; }else if(gettitlebar_height < 25){ gettitlebar_height = 25; }; $(kinslideshow_boxobjectselector+" .kinslideshow_titlebar").css({height:gettitlebar_height,width:"100%",position:"absolute",top:0,left:0}) if(settings.ishastitlebar){ $(kinslideshow_boxobjectselector+" .kinslideshow_titlebar").css({background:settings.titlebar.titlebar_bgcolor,opacity:settings.titlebar.titlebar_alpha}) } }; function kinslideshow_settitlefont(){ if(settings.ishastitlefont){ $(kinslideshow_boxobjectselector+" .kinslideshow_titlebar").append("

"); $(kinslideshow_boxobjectselector+" .kinslideshow_titlebar .title").css({fontsize:settings.titlefont.titlefont_size,color:settings.titlefont.titlefont_color,fontfamily:settings.titlefont.titlefont_family,fontweight:settings.titlefont.titlefont_weight}); settiltfontshow(0); }; }; function kinslideshow_setbtn(){ if(settings.btn.btn_borderwidth > 2){settings.btn.btn_borderwidth = 2} if(settings.btn.btn_borderwidth < 0 || isnan(settings.btn.btn_borderwidth)){settings.btn.btn_borderwidth = 0} if(settings.ishasbtn && kinslideshow_imgaelength >= 2){ $(kinslideshow_boxobject).append("
"); var kinslideshow_btnlist = ""; for(i=1;i<=kinslideshow_imgaelength;i++){ kinslideshow_btnlist+="
  • "+i+"
  • "; } kinslideshow_btnlist = ""; $(kinslideshow_boxobjectselector+" .kinslideshow_btnbox").append(kinslideshow_btnlist); $(kinslideshow_boxobjectselector+" .kinslideshow_btnbox #btnlistid li").css({liststyle:"none",float:"left",width:18,height:18,borderwidth:settings.btn.btn_borderwidth,bordercolor:settings.btn.btn_bordercolor,borderstyle:"solid",background:settings.btn.btn_bgcolor,textalign:"center",cursor:"pointer",marginleft:3,fontsize:12,fontfamily:settings.btn.btn_fontfamily,lineheight:"18px",opacity:settings.btn.btn_bgalpha,color:settings.btn.btn_fontcolor}); $("#btnlistid li:eq(0)").css({background:settings.btn.btn_bghovercolor,bordercolor:settings.btn.btn_borderhovercolor,color:settings.btn.btn_fonthovercolor}); }; }; function kinslideshow_action(){ switch(settings.movestyle){ case "left": kinslideshow_moveleft(); break; case "right": kinslideshow_moveright();break; case "up": kinslideshow_moveup(); break; case "down": kinslideshow_movedown(); break; default: settings.movestyle = "left"; kinslideshow_moveleft(); } }; function kinslideshow_moveleft(){ $(kinslideshow_boxobjectselector+" div:lt(2)").wrapall("
    "); $("#kinslideshow_movebox").css({width:kinslideshow_size[0],height:kinslideshow_size[1],overflow:"hidden",position:"relative"}); $("#kinslideshow_content").css({float:"left"}); $("#kinslideshow_contentclone").css({float:"left"}); $(kinslideshow_boxobjectselector+" #kinslideshow_movebox div").wrapall("
    "); $(kinslideshow_boxobjectselector+" #kinslideshow_xposbox").css({float:"left",width:"2000%"}); kinslideshow_setinterval = setinterval(function(){kinslideshow_move(settings.movestyle)},kinslideshow_intervaltime*1000+settings.movespeedtime); }; function kinslideshow_moveright(){ $(kinslideshow_boxobjectselector+" div:lt(2)").wrapall("
    "); $("#kinslideshow_movebox").css({width:kinslideshow_size[0],height:kinslideshow_size[1],overflow:"hidden",position:"relative"}); $("#kinslideshow_content").css({float:"left"}); $("#kinslideshow_contentclone").css({float:"left"}); $(kinslideshow_boxobjectselector+" #kinslideshow_movebox div").wrapall("
    "); $(kinslideshow_boxobjectselector+" #kinslideshow_xposbox").css({float:"left",width:"2000%"}); $("#kinslideshow_contentclone").html(""); $("#kinslideshow_content a").wrap("") $("#kinslideshow_content a").each(function(i){ $("#kinslideshow_contentclone").prepend($("#kinslideshow_content span:eq("+i+")").html()); }) $("#kinslideshow_content").html($("#kinslideshow_contentclone").html()); var kinslideshow_offsetleft = (kinslideshow_imgaelength-1)*kinslideshow_size[0]; $("#kinslideshow_movebox").scrollleft(kinslideshow_offsetleft); kinslideshow_setinterval = setinterval(function(){kinslideshow_move(settings.movestyle)},kinslideshow_intervaltime*1000+settings.movespeedtime); }; function kinslideshow_moveup(){ $(kinslideshow_boxobjectselector+" div:lt(2)").wrapall("
    ");//用div包裹 $("#kinslideshow_movebox").css({width:kinslideshow_size[0],height:kinslideshow_size[1],overflow:"hidden",position:"relative"}); $("#kinslideshow_movebox").animate({scrolltop: 0}, 1); kinslideshow_setinterval = setinterval(function(){kinslideshow_move(settings.movestyle)},kinslideshow_intervaltime*1000+settings.movespeedtime); }; function kinslideshow_movedown(){ $(kinslideshow_boxobjectselector+" div:lt(2)").wrapall("
    ");//用div包裹 $("#kinslideshow_movebox").css({width:kinslideshow_size[0],height:kinslideshow_size[1],overflow:"hidden",position:"relative"}); $("#kinslideshow_contentclone").html(""); $("#kinslideshow_content a").wrap("") $("#kinslideshow_content a").each(function(i){ $("#kinslideshow_contentclone").prepend($("#kinslideshow_content span:eq("+i+")").html()); }) $("#kinslideshow_content").html($("#kinslideshow_contentclone").html()); var kinslideshow_offsettop = (kinslideshow_imgaelength-1)*kinslideshow_size[1]; $("#kinslideshow_movebox").animate({scrolltop: kinslideshow_offsettop}, 1); kinslideshow_setinterval = setinterval(function(){kinslideshow_move(settings.movestyle)},kinslideshow_intervaltime*1000+settings.movespeedtime); }; function kinslideshow_move(style){ switch(style){ case "left": if(kinslideshow_changeflag >= kinslideshow_imgaelength){ kinslideshow_changeflag = 0; $("#kinslideshow_movebox").scrollleft(0); $("#kinslideshow_movebox").animate({scrollleft:kinslideshow_size[0]}, settings.movespeedtime); }else{ sp =(kinslideshow_changeflag+1)*kinslideshow_size[0]; if ($("#kinslideshow_movebox").is(':animated')){ $("#kinslideshow_movebox").stop(); $("#kinslideshow_movebox").animate({scrollleft: sp}, settings.movespeedtime); }else{ $("#kinslideshow_movebox").animate({scrollleft: sp}, settings.movespeedtime); } } settiltfontshow(kinslideshow_changeflag+1); break; case "right": var kinslideshow_offsetleft = (kinslideshow_imgaelength-1)*kinslideshow_size[0]; if(kinslideshow_changeflag >= kinslideshow_imgaelength){ kinslideshow_changeflag = 0; $("#kinslideshow_movebox").scrollleft(kinslideshow_offsetleft+kinslideshow_size[0]); $("#kinslideshow_movebox").animate({scrollleft:kinslideshow_offsetleft}, settings.movespeedtime); }else{ if(kinslideshow_firstmoveflag){ kinslideshow_changeflag++; kinslideshow_firstmoveflag = false; } sp =kinslideshow_offsetleft-(kinslideshow_changeflag*kinslideshow_size[0]); if ($("#kinslideshow_movebox").is(':animated')){ $("#kinslideshow_movebox").stop(); $("#kinslideshow_movebox").animate({scrollleft: sp}, settings.movespeedtime); }else{ $("#kinslideshow_movebox").animate({scrollleft: sp}, settings.movespeedtime); } } settiltfontshow(kinslideshow_changeflag); break; case "up": if(kinslideshow_changeflag >= kinslideshow_imgaelength){ kinslideshow_changeflag = 0; $("#kinslideshow_movebox").scrolltop(0); $("#kinslideshow_movebox").animate({scrolltop:kinslideshow_size[1]}, settings.movespeedtime); }else{ sp =(kinslideshow_changeflag+1)*kinslideshow_size[1]; if ($("#kinslideshow_movebox").is(':animated')){ $("#kinslideshow_movebox").stop(); $("#kinslideshow_movebox").animate({scrolltop: sp}, settings.movespeedtime); }else{ $("#kinslideshow_movebox").animate({scrolltop: sp}, settings.movespeedtime); } } settiltfontshow(kinslideshow_changeflag+1); break; case "down": var kinslideshow_offsetleft = (kinslideshow_imgaelength-1)*kinslideshow_size[1]; if(kinslideshow_changeflag >= kinslideshow_imgaelength){ kinslideshow_changeflag = 0; $("#kinslideshow_movebox").scrolltop(kinslideshow_offsetleft+kinslideshow_size[1]); $("#kinslideshow_movebox").animate({scrolltop:kinslideshow_offsetleft}, settings.movespeedtime); }else{ if(kinslideshow_firstmoveflag){ kinslideshow_changeflag++; kinslideshow_firstmoveflag = false; } sp =kinslideshow_offsetleft-(kinslideshow_changeflag*kinslideshow_size[1]); if ($("#kinslideshow_movebox").is(':animated')){ $("#kinslideshow_movebox").stop(); $("#kinslideshow_movebox").animate({scrolltop: sp}, settings.movespeedtime); }else{ $("#kinslideshow_movebox").animate({scrolltop: sp}, settings.movespeedtime); } } settiltfontshow(kinslideshow_changeflag); break; } kinslideshow_changeflag++; } function settiltfontshow(index){ if(index == kinslideshow_imgaelength){index = 0}; if(settings.ishastitlefont){ $(kinslideshow_boxobjectselector+" .kinslideshow_titlebar h2").html(kinslideshow_datearray[index]); }; $("#btnlistid li").each(function(i){ if(i == index){ $(this).css({background:settings.btn.btn_bghovercolor,bordercolor:settings.btn.btn_borderhovercolor,color:settings.btn.btn_fonthovercolor}); }else{ $(this).css({background:settings.btn.btn_bgcolor,bordercolor:settings.btn.btn_bordercolor,color:settings.btn.btn_fontcolor}); } }) }; function kinslideshow_btnevent(event){ switch(event){ case "mouseover" : kinslideshow_btnmouseover(); break; case "mouseclick" : kinslideshow_btnmouseclick(); break; default : kinslideshow_btnmouseclick();//如果传值错误默认使用mouseclick切换 } }; function kinslideshow_btnmouseover(){ $("#btnlistid li").mouseover(function(){ var curliindex = $("#btnlistid li").index($(this)); switch(settings.movestyle){ case "left" : kinslideshow_changeflag = curliindex-1; break; case "right" : if(kinslideshow_firstmoveflag){ kinslideshow_changeflag = curliindex-1; break; }else{ kinslideshow_changeflag = curliindex; break; } case "up" : kinslideshow_changeflag = curliindex-1; break; case "down" : if(kinslideshow_firstmoveflag){ kinslideshow_changeflag = curliindex-1; break; }else{ kinslideshow_changeflag = curliindex; break; } } kinslideshow_move(settings.movestyle); $("#btnlistid li").each(function(i){ if(i ==curliindex){ $(this).css({background:settings.btn.btn_bghovercolor,bordercolor:settings.btn.btn_borderhovercolor,color:settings.btn.btn_fonthovercolor}); }else{ $(this).css({background:settings.btn.btn_bgcolor,bordercolor:settings.btn.btn_bordercolor,color:settings.btn.btn_fontcolor}); } }) }) }; function kinslideshow_btnmouseclick(){ $("#btnlistid li").click(function(){ var curliindex = $("#btnlistid li").index($(this)); switch(settings.movestyle){ case "left" : kinslideshow_changeflag = curliindex-1; break; case "right" : if(kinslideshow_firstmoveflag){ kinslideshow_changeflag = curliindex-1; break; }else{ kinslideshow_changeflag = curliindex; break; } case "up" : kinslideshow_changeflag = curliindex-1; break; case "down" : if(kinslideshow_firstmoveflag){ kinslideshow_changeflag = curliindex-1; break; }else{ kinslideshow_changeflag = curliindex; break; } } kinslideshow_move(settings.movestyle); $("#btnlistid li").each(function(i){ if(i ==curliindex){ $(this).css({background:settings.btn.btn_bghovercolor,bordercolor:settings.btn.btn_borderhovercolor,color:settings.btn.btn_fonthovercolor}); }else{ $(this).css({background:settings.btn.btn_bgcolor,bordercolor:settings.btn.btn_bordercolor,color:settings.btn.btn_fontcolor}); } }) }) }; function kinslideshow_mousehover(){ $("#btnlistid li").mouseover(function(){ clearinterval(kinslideshow_setinterval); }) $("#btnlistid li").mouseout(function(){ kinslideshow_setinterval = setinterval(function(){kinslideshow_move(settings.movestyle)},kinslideshow_intervaltime*1000+settings.movespeedtime); }) }; return kinslideshow_initialize(); }; })(jquery);