/********************************************************************************* Ç÷¯±×ÀÎ : jquery.DB_naviFullWideMove.js Á¦ÀÛÀÚ : µðÀÚÀÎºí·¢ , http://designblack.com ¾÷µ¥ÀÌÆ® : 2014-06-11 ¶óÀ̼¾½º : ¹«ÇѶóÀ̼¾½º Âü°í : ¹®¼­Á¤º¸´Â »èÁ¦ ÇÒ ¼ö ¾ø½À´Ï´Ù. *********************************************************************************/ ;(function($){ $.fn.DB_naviFullWideMove=function(options){ //¿É¼Ç°ª var opt={ key:'', eventType:'over', pageNum:null, //¸ÞÀθ޴º ÆäÀÌÁöÀÎ½Ä subNum:null, //¼­ºê¸Þ´º ÆäÀÌÁöÀÎ½Ä subState:false, //¸Þ´ºÈ°¼º½Ã ¼­ºê¸Þ´ºÀÇ ¿ÀÇÂÀ¯¹«(true,false) motionSpeed:300, //¸ð¼Ç¼Óµµ(¹Ð¸®ÃÊ) delayTime:0 //¸Þ´º¾Æ¿ô½Ã µÇµ¹¾Æ°¡´Â µô·¹À̽ð£(¹Ð¸®ÃÊ) }; $.extend(opt,options); return this.each(function(){ var $this=$(this); var $main=$this.find('.DB_main'); var $mainList=$main.find('>li'); var $mask=$this.find('.DB_mask'); var $move=$this.find('.DB_move'); var $subSet=$mask.find('.DB_subSet > ul'); var $subList=$subSet.find('>li'); var $close=$this.find('.DB_close'); var $bg=$this.find('.d_bg > dd'); var listNum=$mainList.length; var fixMenu=opt.pageNum-1; var fixSub=opt.subNum-1; var currentMenu=fixMenu; var currentSub=fixSub; var timerId; var mOver=opt.subState; var moveTop=$move.css('top').slice(0,-2); init(); function init(){ setMouseEvent(); setAnimation(); } function setMouseEvent(){ if(opt.eventType=='over'){ $this.bind('mouseenter',function(){ mOver=true; clearTimeout(timerId); }); $this.bind('mouseleave',function(){ mOver=false; timerId=setTimeout(setAnimation,opt.delayTime); }); $mainList.bind('mouseenter keyup',function(){ mOver=true; currentMenu=$(this).index(); if(currentMenu!=fixMenu){ currentSub=null; }; setAnimation(); }); $mainList.bind('mouseleave',function(){ if(currentMenu!=fixMenu){ currentSub=fixSub; }; currentMenu=fixMenu; }); }else{ $mainList.bind('click keyup',function(){ mOver=true; currentMenu=$(this).index(); if(currentMenu!=fixMenu){ currentSub=null; } setAnimation(); }); $mainList.bind('mouseleave',function(){ if(currentMenu!=fixMenu){ currentSub=fixSub; } currentMenu=fixMenu; setAnimation(); }); }; $subList.bind('mouseenter keyup',function(){ currentMenu=$(this).parent('ul').index(); currentSub=$(this).index(); setAnimation(); }); $subList.bind('mouseleave',function(){ currentMenu=fixMenu; var _currentMenu=$(this).parents('ul').index(); if(_currentMenu==fixMenu){ currentSub=fixSub; }else{ currentSub=null; } }); $close.bind('click',function(){ mOver=false; setAnimation(); }); }; function setAnimation(){ if(mOver||opt.subState){ $move.stop(true,true).animate({'top':0},opt.motionSpeed); $mask.show(); }else{ $move.stop(true,true).animate({'top':moveTop},opt.motionSpeed,function(){$mask.hide();}); }; for(var i=0;ia>img'),'src','_off','_on'); }else{ _mainList.removeClass('DB_select'); setReplace(_mainList.find('a>img'),'src','_on','_off'); }; var _subSet=$subSet.eq(i); for(var k=0;k<_subSet.find('li').length;k++){ var _subList=_subSet.find('li').eq(k); if(currentSub==k&¤tMenu==i){ setReplace(_subList.find('a>img'),'src','_off','_on'); _subList.addClass('DB_select'); }else{ if(i!==fixMenu||k!=fixSub){ _subList.removeClass('DB_select'); setReplace(_subList.find('a>img'),'src','_on','_off'); } } } } $bg.hide(); $bg.eq(currentMenu).show(); }; function setReplace(_mc,_attr,_old,_new){ var str=_mc.attr(_attr); if(String(str).search(_old)!=-1){ _mc.attr(_attr,str.replace(_old,_new)); } } }) } })(jQuery);