/**
* 欢迎使用 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);