Typo3 - vertikales Menü mit GMENU in Ebene 1

Aus Wikizone
Wechseln zu: Navigation, Suche

Modifiziert von Stephan Schlegel März 2007 TypoScript


### Header-Data ###
# Todo-> auslagern
page.headerData{
   90 = COA
   90{
      50 = TEXT

      50.value (
<style type="text/css" media="all">
 @import "/fileadmin/templates/multiMenu/multimenu.css";

</style>

<!-- Multimenu js needed for it to work start-->
<script type="text/javascript" >
function init(){
    activateMenu('nav');
/*    activateMenu('vertnav');*/
}
</script>
 
<script src="/fileadmin/templates/multiMenu/multimenu.js" 
type="text/javascript">
</script>
<!-- Multimenu js end -->

      )
   }
}

marks.MENU  = HMENU
marks.MENU  {
	1=GMENU
	1 {
		wrap = <ul id="nav">|</ul>
		expAll = 1
		noBlur = 1

		NO = 1    
		NO {
			allWrap = <li>|</li>
			transparentBackground = 1

			XY = [10.w]+20, 22

			5 = IMAGE
			5.file = fileadmin/ringergeorg/div/horizontal_GMENU/no.gif
		
			10=TEXT
			10 {
				text.field=title
				offset=10,15
				fontColor = #FFFFFF
				fontFile=fileadmin/fonts/arialbd.ttf
				fontSize=10      
			}
		}
		RO <.NO
		RO.5.file = fileadmin/ringergeorg/div/horizontal_GMENU/hover.gif

		ACT <.RO

		IFSUB <.NO
		IFSUB.allWrap =  <li class="menuparent">|

		ACTIFSUB <.RO
		ACTIFSUB.allWrap =  <li class="menuparent">|

		ACTRO <.RO
		ACTIFSUBRO <.RO
		
		IFSUBRO <.ACTIFSUBRO
	}
	2 = TMENU
	2 {
		wrap  = <ul>|</ul></li>
		expAll = 1
		noBlur = 1

		NO = 1  
		NO.allWrap = <li>|</li>

		ACT <.NO
		ACT.allWrap = <li class="nav2act> |</li>

		IFSUB = 1
		IFSUB.allWrap =  <li class="menuparent">|

		ACTIFSUB = 1
		ACTIFSUB.allWrap =  <li class="menuparent">|
	}
	3 <.2
}

CSS

body {
	font: 78%/1.5 arial, helvetica, serif;	
	padding: 0;
	margin: 2em;
}
 
#nav, #nav ul {
	float: left;
	width: 86em;
	list-style: none;
	line-height: 1em;
	background-image: url(l1_bg.gif);
	color: #FFF;
	padding: 0;
}
 
#nav li li {
	background:red;
	border-bottom:1px solid #fff;
}
 
#nav a {
	display: block;
	xwidth: 7em;
	color: #FFF;
	text-decoration: none;
	padding: 0.2em 0em;
}
 
#nav a.menuparent  {
	background: url(pfeil.gif) no-repeat 90% 40%;
}
 
#nav li {
	float: left;
	padding: 0;
}
 
#nav ul li a {
	color: #FFF;
	font-size:11px;
	font-weight:bold;
}
 
#nav li ul {
	position: absolute;
	left: -999em;
	height: auto;
	width: 14em;
	font-weight: normal;
	margin: 0;
}
 
#nav li li {
	width: 15em;
}
 
#nav li ul a {
}
 
#nav li ul ul {
	margin: -1.45em 0 0 14em !important;
	margin: -1.45em 0 0 14.45em ;
}
 
#nav li:hover ul ul, #nav li:hover ul ul ul, #nav li.sfhover ul ul, #nav li.sfhover ul ul ul {
	left: -999em;
}
 
#nav li:hover ul, #nav li li:hover ul, #nav li li li:hover ul, #nav li.sfhover ul, #nav li li.sfhover ul, #nav li li li.sfhover ul {
	left: auto;
}
 
#nav li li:hover, #nav li li.sfhover {
	background: #ff4d00;
}
 
#nav li li {
x	background: red;
}
 
#nav li li a {
	padding-left:5px;
}
 
#nav li ul  {
	background-image: none;
}

JavaScript

sfHover = function() {
	var sfEls = document.getElementById("nav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);