/** +------------------------------------------------------------------------------------------------------------- * [ȫ������ͼ]��� jquery.kinmaxshow +------------------------------------------------------------------------------------------------------------- * @author mr.kin * @version 1.1 * @file jquery.kinmaxshow-1.1.src.js * @info ����bug�����顢��ȡ���°汾 ��mail��mr.kin@foxmail.com(ע���ʼ����������kinmaxshow �ա��������զ��鵵) * @date 2013-08-27 +------------------------------------------------------------------------------------------------------------- */ (function($){ $.fn.kinmaxshow = function(user_options){ //ĭ������ var default_options = { //�õ�ƭ�߶� ĭ��500 height:500, //�õ�ƭ�л����ʱ�� ��λ:�� intervaltime:6, //�õ�ƭ�л�ʱ�� ��λ������ ,������ϊ0 �����л�ч�� ֱ��������һ�� switchtime:1000, //��ͣ��ͣ�л� ���ͣ����kinmaxshow�� �ƿ���ͣ�л� ĭ��true ��ͣ��ͣ������ϊfalse ��ͣ����ͣ hoverpause:true, //����ч��(�л�) jquery�դ��� "linear" �� "swing" ,����ҫ��������ч����ʹ�� jquery.easing.js ��� easing:'linear', //ͼƭ���뷽ʽ imagealign:'center center', //��ť button:{ //��ť����л��¼� ��ѡ�¼� click��mouseover switchevent:'click', //��ť���ƿ���ʾ�������֣���1��ʼ��ĭ�ϲ���ʾ showindex:false, //��ť��ʽ //���� ��ť��ʽ ֧�ֳ���css��ʽ������ͬjquery css({key:val,����}) 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'}, //��ǰ ��ť��ʽ focus:{background:"#cc0000",border:"1px solid #ff0000",color:"#000000"} }, //�л��ص� index ��ǰͼƭ������action ���� ������ ���� �г� ֵ:fadein��fadeout �������� thisָ�� ��ǰͼƭ�������� ��������������Ԫ�صķ��� �����demo�� callback:function(index,action){} }; options = jquery.extend(true,{},default_options,user_options); var k = {}; //��ǰѡ��� k.selector = $(this).selector; //�ж��ƿ��ж������ ��ѡȡ�˶�������׳�����ͬһҳ�����ʹ�ö�� ����ҫ�ֱ���ò��ҽ���ѡ�����id�� if($(this).length>1){ $.error('kinmaxshow error[more than one selected object]'); return false; } //��ǰ�������� k.self = this; //��ǰͼƭ���� k.index = 0; //ǰһ��ͼƭ���� k.lindex = 0; //ͼƭ���� k.size = $(k.self).children('div').size(); //css class�����ռ�ǰ׺ k.prename = 'kmsprefix_' + k.selector.replace(/\w/ig,'') + '_'; //���ݴ洢 k.data = {}; //֧�ֺ������� k.fn = {}; //���� �����õ�ƭ��͸� k.onload = function(){ //���������ߴ� ������ʱ�������ݲ��� $(k.self).css({width:'100%',height:options.height,overflow:'hidden',position:'relative'}).children('div').addclass(k.prename+'image_item').hide(); //��ʼ�� k.init(); }; //��ʼ�� k.init = function(){ k.setlayout(); k.setanimate(); }; //���� k.setlayout = function(){ //image ���� $(k.self).children('div').wrapall('
'); $('.'+k.prename+'image_item',k.self).each(function() { var a = $(this).children('a'); if(a.length){ var image = a.children('img').attr('src'); a.children('img').remove(); a.addclass(k.prename+'coverlink'); }else{ var image = $(this).children('img').attr('src'); $(this).children('img').remove(); } // $(this).css({background:'url('+image+') no-repeat '+options.imagealign,'z-index':1}); }); $('.'+k.prename+'image_item',k.self).eq(0).css('z-index','2'); //button ���� if(options.button.normal.display!='none'){ var button_list = ''; for(i=1;i<=k.size;i++){ if(options.button.showindex){ button_list+='
  • '+i+'
  • '; }else{ button_list+='
  • '; } } $(k.self).append(''); $('.'+k.prename+'button li',k.self).eq(0).addclass(k.prename+'focus'); } //���� css k.setcss(); //��ʾ���� $('.'+k.prename+'image_item:gt(0)',k.self).css('z-index',1).css({opacity:0}); $('.'+k.prename+'image_item',k.self).show(); $(k.self).css({overflow:'visible',visibility:'visible',display:'block'}); }; //css k.setcss = function(){ var csscode = ''; $(k.self).prepend(csscode); } //�������� k.setanimate = function(){ options.callback.call($('.'+k.prename+'image_item:eq('+k.index+')',k.self),k.index,'fadein'); var overdelaytimer;//��switchevent��mouseoverʱ ִ���ӳټ�ʱ�� $('.'+k.prename+'button',k.self).delegate('li',options.button.switchevent,function(){ _this = this; function setchange(){ k.index = $(_this).index(); k.setopacity(); } if(options.button.switchevent=='mouseover'){ overdelaytimer = settimeout(setchange,200); }else{ setchange(); } }) //mouseover ��ʱ if(options.button.switchevent=='mouseover'){ $('.'+k.prename+'button',k.self).delegate('li','mouseout',function(){ cleartimeout(overdelaytimer); }) } //�������� k.index = 1; k.lindex = 0; //�զ��л���ʱ�� k.data.movetimer = setinterval(k.setopacity,options.intervaltime*1000+options.switchtime); //��ͣ��ͣ if(options.hoverpause){ $(k.self).hover(function(){ clearinterval(k.data.movetimer); },function(){ k.data.movetimer = setinterval(k.setopacity,options.intervaltime*1000+options.switchtime); }) } }; //����(�л�) k.setopacity = function(){ //�ص� fadeout callback options.callback.call($('.'+k.prename+'image_item:eq('+(k.lindex)+')',k.self),k.lindex,'fadeout'); //��ť�л� if(options.button.normal.display!='none'){ $('ul.'+k.prename+'button li',k.self).removeclass(k.prename+'focus'); $('ul.'+k.prename+'button li',k.self).eq(k.index).addclass(k.prename+'focus'); } //ִֹͣ���еķ��� $('.'+k.prename+'image_item:animated',k.self).stop(true,false); //������һ����ʾ��z-indexϊ0 $('.'+k.prename+'image_item',k.self).css('z-index',1); //���õ�ǰ��ʾ��z-indexϊ1 $('.'+k.prename+'image_item',k.self).eq(k.index).css({opacity:0,'z-index':2}); //alert(k.index) $('.'+k.prename+'image_item',k.self).eq(k.index).animate({opacity:1},options.switchtime,options.easing,function(){ $('.'+k.prename+'image_box .'+k.prename+'image_item:not(:eq('+k.index+'))',k.self).css({opacity:0}); //�ص� fadein callback options.callback.call($('.'+k.prename+'image_item:eq('+k.index+')',k.self),k.index,'fadein'); k.lindex = k.index; if(k.index==k.size-1){ k.index=0; }else{ k.index++; } } ); }; //���� k.run = function(){ k.onload(); }; /* obj ������ʽ������"-"����ҫתϊ�շ�ʽд�� �磺font-size:12px; fontsize:12px; excarr:����ҫת�����б��ų������ ���� ���� ['test1','opacity'] ��excflagϊture��ֻת��excarr�����е�css*/ k.fn.objtocss = function(obj,excarr,excflag){ excflag = excflag?true:false; var isie = navigator.useragent.indexof("msie")!=-1; var style = ''; if(excflag){ for (var key in obj){ if($.inarray(key,excarr)!=-1){ pkey = key.replace(/([a-z])/,ktolowercase); if(pkey=='opacity' && isie){ style +="filter:alpha(opacity="+(obj[key]*100)+");"; }else{ style +=pkey+":"+obj[key]+";"; } } }; }else{ for (var key in obj){ if($.isarray(excarr)){ if($.inarray(key,excarr)==-1){ pkey = key.replace(/([a-z])/,ktolowercase); if(pkey=='opacity' && isie){ style +="filter:alpha(opacity="+(obj[key]*100)+");"; }else{ style +=pkey+":"+obj[key]+";"; } } }else{ pkey = key.replace(/([a-z])/,ktolowercase); if(pkey=='opacity' && isie){ style +="filter:alpha(opacity="+(obj[key]*100)+");"; }else{ style +=pkey+":"+obj[key]+";"; } } }; } function ktolowercase(word){ var str=''; str = '-'+word.tolowercase(); return str; }; return style; }; /* ���� */ k.run(); } })(jquery)