首页 > 代码库 > 图片轮播

图片轮播

1 <!--=============首页banner图开始===============-->2   <div id="kinMaxShow">3       <div><a href="indexwebox.html" target="_blank"><img src="images/index1.png" width="1920" height="739" /></a></div>4       <div><a href="indexwebox.html" target="_blank"><img src="images/index2.png" width="1920" height="739" /></a></div>5   </div>6 <!--=============首页banner图结束===============-->
$(function(){    $("#kinMaxShow").kinMaxShow();});
  1 /**  2  +-------------------------------------------------------------------------------------------------------------  3  * [全屏焦点图]插件 jquery.kinMaxShow  4  +-------------------------------------------------------------------------------------------------------------  5  * @author   Mr.kin  6  * @version  1.1  7  * @file       jquery.kinMaxShow-1.1.src.js  8  * @info       报告BUG、建议、索取最新版本 请Mail:Mr.kin@foxmail.com(注:邮件标题请包含kinMaxShow 以便于邮箱自动归档)  9  * @date       2013-08-27 10  +------------------------------------------------------------------------------------------------------------- 11  */ 12   13 (function($){ 14     $.fn.kinMaxShow = function(user_options){ 15             //默认设置 16             var default_options = { 17                         //幻灯片高度 默认500 18                         height:736, 19                         //幻灯片切换间隔时间 单位:秒 20                         intervalTime:3, 21                         //幻灯片切换时间 单位:毫秒 ,若设置为0 则无切换效果 直接跳到下一张 22                         switchTime:1000, 23                         //悬停暂停切换 鼠标停留在kinMaxShow内 是否暂停切换 默认true 悬停暂停,设置为false 悬停不暂停 24                         hoverPause:true, 25                         //擦除效果(切换) jQuery自带有 "linear" 和 "swing" ,如需要其他擦除效果请使用 jquery.easing.js  插件 26                         easing:‘linear‘, 27                         //图片对齐方式 28                         imageAlign:‘center center‘, 29                         //按钮 30                         button:{ 31                                 //按钮鼠标切换事件 可选事件 click、mouseover 32                                 switchEvent:‘click‘, 33                                 //按钮上是否显示索引数字,从1开始,默认不显示 34                                 showIndex:false, 35                                 //按钮样式 36                                 //正常 按钮样式  支持常规CSS样式,方法同jQuery css({key:val,……}) 37                                 normal:{width:‘4px‘,height:‘4px‘,lineHeight:‘14px‘,right:‘10px‘,bottom:‘10px‘,fontSize:‘10px‘,background:"#8dc93a",border:"1px solid #ffffff",color:"#666666",textAlign:‘center‘,marginRight:‘8px‘,fontFamily:"Verdana",float:‘left‘}, 38                                 //当前 按钮样式 39                                 focus:{background:"#8dc93a",border:"1px solid #8dc93a",color:"#000000"} 40                             }, 41                         //切换回调 index 当前图片索引,action 动作 的切入 还是 切出 值:fadeIn或fadeOut ,函数内 this指向 当前图片容器对象 可用来操作里面元素的动作 详情见demo。 42                         callback:function(index,action){} 43                      44             }; 45             options = jQuery.extend(true,{},default_options,user_options); 46              47             var k = {}; 48              49             //当前选择符 50             k.selector = $(this).selector; 51              52             //判断是否有多个对象 如选取了多个对象抛出错误,同一页面可以使用多个 但需要分别调用并且建议选择符用id。 53             if($(this).length>1){ 54                 $.error(‘kinMaxShow error[More than one selected object]‘); 55                 return false;     56             } 57              58             //当前操作对象 59             k.self = this; 60             //当前图片索引 61             k.index = 0; 62             //前一个图片索引 63             k.lindex = 0; 64             //图片数量 65             k.size = $(k.self).children(‘div‘).size(); 66             //CSS class命名空间前缀 67             k.prename = ‘KMSPrefix_‘ + k.selector.replace(/\W/ig,‘‘) + ‘_‘; 68             //数据存储 69             k.data =http://www.mamicode.com/ {}; 70             //支持函数集合 71             k.fn = {}; 72              73             //加载 解析幻灯片宽和高 74             k.onload = function(){ 75                 //设置容器尺寸 并且暂时隐藏内容部分 76                 $(k.self).css({width:‘100%‘,height:options.height,overflow:‘hidden‘,position:‘relative‘}).children(‘div‘).addClass(k.prename+‘image_item‘).hide(); 77                 //初始化 78                 k.init(); 79                      80             };             81              82              83             //初始化 84             k.init = function(){ 85                  86                 k.setLayout(); 87                 k.setAnimate(); 88                  89             }; 90          91             //布局 92             k.setLayout = function(){ 93                  94                 //image 容器 95                 $(k.self).children(‘div‘).wrapAll(‘<div class="‘+k.prename+‘image_box"></div>‘); 96                 $(‘.‘+k.prename+‘image_item‘,k.self).each(function() { 97                     var a = $(this).children(‘a‘); 98                     if(a.length){ 99                         var image = a.children(‘img‘).attr(‘src‘);100                         a.children(‘img‘).remove();101                         a.addClass(k.prename+‘coverlink‘);102                     }else{103                         var image = $(this).children(‘img‘).attr(‘src‘);104                         $(this).children(‘img‘).remove();        105                     }106                     //107                     $(this).css({background:‘url(‘+image+‘) no-repeat ‘+options.imageAlign,‘z-index‘:1});108                     109                 });110                 111                 $(‘.‘+k.prename+‘image_item‘,k.self).eq(0).css(‘z-index‘,‘2‘);112                 113                 //button 容器114                 if(options.button.normal.display!=‘none‘){115                     var button_list = ‘‘;116                     for(i=1;i<=k.size;i++){117                         if(options.button.showIndex){118                             button_list+=‘<li>‘+i+‘</li>‘;119                         }else{120                             button_list+=‘<li> </li>‘;    121                         }122                     }                123                     $(k.self).append(‘<ul class="‘+k.prename+‘button">‘+button_list+‘</ul>‘);124                     $(‘.‘+k.prename+‘button li‘,k.self).eq(0).addClass(k.prename+‘focus‘);125                 }126                 127                 //设置 css128                 k.setCSS();    129                 130                 //显示内容131                 $(‘.‘+k.prename+‘image_item:gt(0)‘,k.self).css(‘z-index‘,1).css({opacity:0});132                 $(‘.‘+k.prename+‘image_item‘,k.self).show();133                 $(k.self).css({overflow:‘visible‘,visibility:‘visible‘,display:‘block‘});134 135                 136             };137             138             //CSS139             k.setCSS = function(){140                 141             var cssCode = ‘<style type="text/css">‘;142                 cssCode+= k.selector+‘ *{ margin:0;padding:0;} ‘;143                 cssCode+= k.selector+‘ .‘+k.prename+‘image_box{width:100%;height:‘+parseInt(options.height)+‘px;position:relative;z-index:1;} ‘;144                 cssCode+= k.selector+‘ .‘+k.prename+‘image_box .‘+k.prename+‘image_item{width:100%;height:‘+parseInt(options.height)+‘px;position:absolute;overflow:hidden;} ‘;145                 cssCode+= k.selector+‘ .‘+k.prename+‘image_box .‘+k.prename+‘image_item a.‘+k.prename+‘coverlink{width:100%;height:‘+parseInt(options.height)+‘px;display:block;text-decoration:none;padding:0;margin:0;background:transparent;text-indent:0;outline:none;hide-focus:expression(this.hideFocus=true);} ‘;146                 if(options.button.normal.display!=‘none‘){147                     cssCode+= k.selector+‘ .‘+k.prename+‘button{‘+k.fn.objToCss(options.button.normal,[‘top‘,‘right‘,‘bottom‘,‘left‘],true)+‘;position:absolute;list-style:none;z-index:2;overflow:hidden;_zoom:1;}‘;                148                     cssCode+= k.selector+‘ .‘+k.prename+‘button li{‘+k.fn.objToCss(options.button.normal,[‘top‘,‘right‘,‘bottom‘,‘left‘])+‘;cursor:pointer;-webkit-text-size-adjust:none;}‘;                149                     cssCode+= k.selector+‘ .‘+k.prename+‘button li.‘+k.prename+‘focus{‘+k.fn.objToCss(options.button.focus,[‘top‘,‘right‘,‘bottom‘,‘left‘])+‘;cursor:default;}‘;                150                 }151                 cssCode+= ‘</style>‘;152                 $(k.self).prepend(cssCode);153                     154             }155             156             //动画管理157             k.setAnimate = function(){158                 159                 options.callback.call($(‘.‘+k.prename+‘image_item:eq(‘+k.index+‘)‘,k.self),k.index,‘fadeIn‘);160                 161                 var overDelayTimer;//当switchEvent是mouseover时  执行延迟计时器162                 $(‘.‘+k.prename+‘button‘,k.self).delegate(‘li‘,options.button.switchEvent,function(){163                     _this = this;164                     function setChange(){165                         k.index = $(_this).index();166                         k.setOpacity();167                     }168                     if(options.button.switchEvent==‘mouseover‘){169                         overDelayTimer = setTimeout(setChange,200);170                     }else{171                         setChange();172                     }173                 })174                 //mouseover 延时175                 if(options.button.switchEvent==‘mouseover‘){176                     $(‘.‘+k.prename+‘button‘,k.self).delegate(‘li‘,‘mouseout‘,function(){177                         clearTimeout(overDelayTimer);178                     })                        179                 }                180                 181                 //设置索引182                 k.index  = 1;183                 k.lindex = 0;184                 //自动切换定时器185                 k.data.moveTimer = setInterval(k.setOpacity,options.intervalTime*1000+options.switchTime);186                 187                 //悬停暂停188                 if(options.hoverPause){    189                     $(k.self).hover(function(){190                         clearInterval(k.data.moveTimer);191                     },function(){192                         k.data.moveTimer = setInterval(k.setOpacity,options.intervalTime*1000+options.switchTime);193                     })194                 }195 196             };197             198             //擦除(切换)199             k.setOpacity = function(){200                 201                 //回调 fadeOut callback202                 options.callback.call($(‘.‘+k.prename+‘image_item:eq(‘+(k.lindex)+‘)‘,k.self),k.lindex,‘fadeOut‘);203                 //按钮切换204                 if(options.button.normal.display!=‘none‘){205                     $(‘ul.‘+k.prename+‘button li‘,k.self).removeClass(k.prename+‘focus‘);206                     $(‘ul.‘+k.prename+‘button li‘,k.self).eq(k.index).addClass(k.prename+‘focus‘);207                 }208                 209                 //停止执行中的动画210                 $(‘.‘+k.prename+‘image_item:animated‘,k.self).stop(true,false);211                 //设置上一个显示的z-index为0212                 $(‘.‘+k.prename+‘image_item‘,k.self).css(‘z-index‘,1);213                 //设置当前显示的z-index为1214                 $(‘.‘+k.prename+‘image_item‘,k.self).eq(k.index).css({opacity:0,‘z-index‘:2});215                   //alert(k.index)216                 $(‘.‘+k.prename+‘image_item‘,k.self).eq(k.index).animate({opacity:1},options.switchTime,options.easing,function(){217                         $(‘.‘+k.prename+‘image_box .‘+k.prename+‘image_item:not(:eq(‘+k.index+‘))‘,k.self).css({opacity:0});218                         //回调 fadeIn callback219                         options.callback.call($(‘.‘+k.prename+‘image_item:eq(‘+k.index+‘)‘,k.self),k.index,‘fadeIn‘);220                         k.lindex = k.index;221                         if(k.index==k.size-1){222                             k.index=0;223                         }else{224                             k.index++;225                         }226                     }227                 );228                 229             };230             231             //运行            232             k.run = function(){233                 k.onload();234             };235             236             /* obj 对象样式,带有"-"的需要转为驼峰式写法 如:font-size:12px; fontSize:12px;  excArr:不需要转换的列表排除在外的 类型 数组 [‘test1‘,‘opacity‘] 若excFlag为ture则只转换excArr数组中的CSS*/237             k.fn.objToCss = function(obj,excArr,excFlag){238                 excFlag = excFlag?true:false;239                 var isIE = navigator.userAgent.indexOf("MSIE")!=-1;240                 var style = ‘‘;241                 if(excFlag){242                     for (var key in obj){243                         if($.inArray(key,excArr)!=-1){244                             pKey = key.replace(/([A-Z])/,KtoLowerCase);245                             if(pKey==‘opacity‘ && isIE){246                                 style +="filter:alpha(opacity="+(obj[key]*100)+");";247                             }else{248                                 style +=pKey+":"+obj[key]+";";    249                             }250                         }251                     };                    252                 }else{253                     for (var key in obj){254                         if($.isArray(excArr)){255                             if($.inArray(key,excArr)==-1){256                                 pKey = key.replace(/([A-Z])/,KtoLowerCase);257                                 if(pKey==‘opacity‘ && isIE){258                                     style +="filter:alpha(opacity="+(obj[key]*100)+");";259                                 }else{260                                     style +=pKey+":"+obj[key]+";";    261                                 }262                             }263                         }else{264                             pKey = key.replace(/([A-Z])/,KtoLowerCase);265                             if(pKey==‘opacity‘ && isIE){266                                 style +="filter:alpha(opacity="+(obj[key]*100)+");";267                             }else{268                                 style +=pKey+":"+obj[key]+";";    269                             }                     270                         }271                     };    272                 }273                 274                 275                 function KtoLowerCase(word){276                     var str=‘‘;277                     str = ‘-‘+word.toLowerCase();278                     return str; 279                 };280                 return style;281             };282             283             /* 运行 */284             k.run();285 286         287         288     }    289     290 })(jQuery)

 

图片轮播