25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

171 lines
8.8 KiB

  1. (function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}
  2. if(p==this){return false;}
  3. var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}
  4. if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);;(function($){$.fn.superfish=function(op){var sf=$.fn.superfish,c=sf.c,$arrow=$(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),over=function(){var $$=$(this),menu=getMenu($$);clearTimeout(menu.sfTimer);$$.showSuperfishUl().siblings().hideSuperfishUl();},out=function(){var $$=$(this),menu=getMenu($$),o=sf.op;clearTimeout(menu.sfTimer);menu.sfTimer=setTimeout(function(){o.retainPath=($.inArray($$[0],o.$path)>-1);$$.hideSuperfishUl();if(o.$path.length&&$$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}},o.delay);},getMenu=function($menu){var menu=$menu.parents(['ul.',c.menuClass,':first'].join(''))[0];sf.op=sf.o[menu.serial];return menu;},addArrow=function($a){$a.addClass(c.anchorClass).append($arrow.clone());};return this.each(function(){var s=this.serial=sf.o.length;var o=$.extend({},sf.defaults,op);o.$path=$('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){$(this).addClass([o.hoverClass,c.bcClass].join(' ')).filter('li:has(ul)').removeClass(o.pathClass);});sf.o[s]=sf.op=o;$('li:has(ul)',this)[($.fn.hoverIntent&&!o.disableHI)?'hoverIntent':'hover'](over,out).each(function(){if(o.autoArrows)addArrow($('>a:first-child',this));}).not('.'+c.bcClass).hideSuperfishUl();var $a=$('a',this);$a.each(function(i){var $li=$a.eq(i).parents('li');$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});});o.onInit.call(this);}).each(function(){var menuClasses=[c.menuClass];if(sf.op.dropShadows&&!($.browser.msie&&$.browser.version<7))menuClasses.push(c.shadowClass);$(this).addClass(menuClasses.join(' '));});};var sf=$.fn.superfish;sf.o=[];sf.op={};sf.IE7fix=function(){var o=sf.op;if($.browser.msie&&$.browser.version>6&&o.dropShadows&&o.animation.opacity!=undefined)
  5. this.toggleClass(sf.c.shadowClass+'-off');};sf.c={bcClass:'sf-breadcrumb',menuClass:'sf-js-enabled',anchorClass:'sf-with-ul',arrowClass:'sf-sub-indicator',shadowClass:'sf-shadow'};sf.defaults={hoverClass:'sfHover',pathClass:'overideThisToUse',pathLevels:1,delay:800,animation:{opacity:'show'},speed:'normal',autoArrows:true,dropShadows:true,disableHI:false,onInit:function(){},onBeforeShow:function(){},onShow:function(){},onHide:function(){}};$.fn.extend({hideSuperfishUl:function(){var o=sf.op,not=(o.retainPath===true)?o.$path:'';o.retainPath=false;var $ul=$(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass).find('>ul').hide().css('visibility','hidden');o.onHide.call($ul);return this;},showSuperfishUl:function(){var o=sf.op,sh=sf.c.shadowClass+'-off',$ul=this.addClass(o.hoverClass).find('>ul:hidden').css('visibility','visible');sf.IE7fix.call($ul);o.onBeforeShow.call($ul);$ul.animate(o.animation,o.speed,function(){sf.IE7fix.call($ul);o.onShow.call($ul);});return this;}});})(jQuery);provide('wn.menus.superfish');wn.menus.superfish=function(parent,data){var _make_list=function(myparent,lst){var ul=wn.dom.add(myparent,'ul');$.each(lst,function(i,v){var li=wn.dom.add(ul,'li')
  6. var a=wn.dom.add(li,'a','','',v.label);a.action=v.action
  7. if(v.action){a.onclick=function(){window[action]();};}
  8. if(v.href){a.href=v.href;}
  9. if(v.subitems){_make_list(li,v.subitems);}})
  10. return ul;}
  11. ul=_make_list(parent,data);ul.className='sf-menu';$(ul).superfish();}
  12. wn.assets.handler.css('\
  13. /*** ESSENTIAL STYLES ***/\
  14. .sf-menu, .sf-menu * {\
  15. margin: 0;\
  16. padding: 0;\
  17. list-style: none;\
  18. }\
  19. .sf-menu {\
  20. line-height: 1.0;\
  21. }\
  22. .sf-menu ul {\
  23. position: absolute;\
  24. top: -999em;\
  25. width: 10em; /* left offset of submenus need to match (see below) */\
  26. }\
  27. .sf-menu ul li {\
  28. width: 100%;\
  29. }\
  30. .sf-menu li:hover {\
  31. visibility: inherit; /* fixes IE7 \'sticky bug\' */\
  32. }\
  33. .sf-menu li {\
  34. float: left;\
  35. position: relative;\
  36. }\
  37. .sf-menu a {\
  38. display: block;\
  39. position: relative;\
  40. }\
  41. .sf-menu li:hover ul,\
  42. .sf-menu li.sfHover ul {\
  43. left: 0;\
  44. top: 2.5em; /* match top ul list item height */\
  45. z-index: 99;\
  46. }\
  47. ul.sf-menu li:hover li ul,\
  48. ul.sf-menu li.sfHover li ul {\
  49. top: -999em;\
  50. }\
  51. ul.sf-menu li li:hover ul,\
  52. ul.sf-menu li li.sfHover ul {\
  53. left: 10em; /* match ul width */\
  54. top: 0;\
  55. }\
  56. ul.sf-menu li li:hover li ul,\
  57. ul.sf-menu li li.sfHover li ul {\
  58. top: -999em;\
  59. }\
  60. ul.sf-menu li li li:hover ul,\
  61. ul.sf-menu li li li.sfHover ul {\
  62. left: 10em; /* match ul width */\
  63. top: 0;\
  64. }\
  65. \
  66. /*** DEMO SKIN ***/\
  67. .sf-menu {\
  68. float: left;\
  69. margin-bottom: 1em;\
  70. }\
  71. .sf-menu a {\
  72. border-left: 1px solid #fff;\
  73. border-top: 1px solid #CFDEFF;\
  74. padding: .75em 1em;\
  75. text-decoration:none;\
  76. }\
  77. .sf-menu a, .sf-menu a:visited { /* visited pseudo selector so IE6 applies text colour*/\
  78. color: #13a;\
  79. }\
  80. .sf-menu li {\
  81. background: #BDD2FF;\
  82. }\
  83. .sf-menu li li {\
  84. background: #AABDE6;\
  85. }\
  86. .sf-menu li li li {\
  87. background: #9AAEDB;\
  88. }\
  89. .sf-menu li:hover, .sf-menu li.sfHover,\
  90. .sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active {\
  91. background: #CFDEFF;\
  92. outline: 0;\
  93. }\
  94. \
  95. /*** arrows **/\
  96. .sf-menu a.sf-with-ul {\
  97. padding-right: 2.25em;\
  98. min-width: 1px; /* trigger IE7 hasLayout so spans position accurately */\
  99. }\
  100. .sf-sub-indicator {\
  101. position: absolute;\
  102. display: block;\
  103. right: .75em;\
  104. top: 1.05em; /* IE6 only */\
  105. width: 10px;\
  106. height: 10px;\
  107. text-indent: -999em;\
  108. overflow: hidden;\
  109. background: url(\'assets/js/lib/superfish/images/arrows-ffffff.png\') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */\
  110. }\
  111. a > .sf-sub-indicator { /* give all except IE6 the correct values */\
  112. top: .8em;\
  113. background-position: 0 -100px; /* use translucent arrow for modern browsers*/\
  114. }\
  115. /* apply hovers to modern browsers */\
  116. a:focus > .sf-sub-indicator,\
  117. a:hover > .sf-sub-indicator,\
  118. a:active > .sf-sub-indicator,\
  119. li:hover > a > .sf-sub-indicator,\
  120. li.sfHover > a > .sf-sub-indicator {\
  121. background-position: -10px -100px; /* arrow hovers for modern browsers*/\
  122. }\
  123. \
  124. /* point right for anchors in subs */\
  125. .sf-menu ul .sf-sub-indicator { background-position: -10px 0; }\
  126. .sf-menu ul a > .sf-sub-indicator { background-position: 0 0; }\
  127. /* apply hovers to modern browsers */\
  128. .sf-menu ul a:focus > .sf-sub-indicator,\
  129. .sf-menu ul a:hover > .sf-sub-indicator,\
  130. .sf-menu ul a:active > .sf-sub-indicator,\
  131. .sf-menu ul li:hover > a > .sf-sub-indicator,\
  132. .sf-menu ul li.sfHover > a > .sf-sub-indicator {\
  133. background-position: -10px 0; /* arrow hovers for modern browsers*/\
  134. }\
  135. \
  136. /*** shadows for all but IE6 ***/\
  137. .sf-shadow ul {\
  138. background: url(\'assets/js/lib/superfish/images/shadow.png\') no-repeat bottom right;\
  139. padding: 0 8px 9px 0;\
  140. -moz-border-radius-bottomleft: 17px;\
  141. -moz-border-radius-topright: 17px;\
  142. -webkit-border-top-right-radius: 17px;\
  143. -webkit-border-bottom-left-radius: 17px;\
  144. }\
  145. .sf-shadow ul.sf-shadow-off {\
  146. background: transparent;\
  147. }\
  148. ');wn.assets.handler.css('/*** adding sf-vertical in addition to sf-menu creates a vertical menu ***/\
  149. .sf-vertical, .sf-vertical li {\
  150. width: 10em;\
  151. }\
  152. /* this lacks ul at the start of the selector, so the styles from the main CSS file override it where needed */\
  153. .sf-vertical li:hover ul,\
  154. .sf-vertical li.sfHover ul {\
  155. left: 10em; /* match ul width */\
  156. top: 0;\
  157. }\
  158. \
  159. /*** alter arrow directions ***/\
  160. .sf-vertical .sf-sub-indicator { background-position: -10px 0; } /* IE6 gets solid image only */\
  161. .sf-vertical a > .sf-sub-indicator { background-position: 0 0; } /* use translucent arrow for modern browsers*/\
  162. \
  163. /* hover arrow direction for modern browsers*/\
  164. .sf-vertical a:focus > .sf-sub-indicator,\
  165. .sf-vertical a:hover > .sf-sub-indicator,\
  166. .sf-vertical a:active > .sf-sub-indicator,\
  167. .sf-vertical li:hover > a > .sf-sub-indicator,\
  168. .sf-vertical li.sfHover > a > .sf-sub-indicator {\
  169. background-position: -10px 0; /* arrow hovers for modern browsers*/\
  170. }');