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ï¼[email protected](注ï¼é®ä»¶æ é¢è¯·å å«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:640, 19 //å¹»ç¯ç忢é´éæ¶é´ åä½:ç§ 20 intervalTime:6, 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:'14px',height:'14px',lineHeight:'14px',right:'10px',bottom:'10px',fontSize:'10px',background:"#cccaca",border:"1px solid #ffffff",color:"#666666",textAlign:'center',marginRight:'8px',fontFamily:"Verdana",float:'left'}, 38 //å½å æé®æ ·å¼ 39 focus:{background:"#357416",border:"1px solid #dcdcdc",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 = {}; 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 //设置 css 128 k.setCSS(); 129 130 //æ¾ç¤ºå 容 131 $('.'+k.prename+'image_item:gt(0)',k.self).css('z-index',1).css({opacity:0}
131); 132 $('.'+k.prename+'image_item',k.self).show(); 133 $(k.self).css({overflow:'visible',visibility:'visible',display:'block'}); 134 135 136 }; 137 138 //CSS 139 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 callback 202 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为0 212 $('.'+k.prename+'image_item',k.self).css('z-index',1); 213 //设置å½åæ¾ç¤ºçz-index为1 214 $('.'+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 callback 219 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)
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.