Suckerfish Dropdowns
Armin Bartsch, Mittwoch, 11. März 2009
Ein CSS Aufklappmenue, mit JavaScript Unterstützung für den InternetExplorer <7
Leider benötigt der InternetExplorer zur Unterstützung JavaScript. Das The ULTIMATE CSS only drop-down menu ist ein reines CSS Menü.
Das Suckerfish Dropdowns ist ein einfaches CSS Aufklappmenü das einfach und schnell in eine Seite integriert werden kann. Das TypoScript ist einfach gehalten, kann aber dafür auch sehr einfach erweitert werden und den eigenen wünschen angepasst werden.
Hier erhalten Sie weitere Information zum Suckerfish Dropdowns, dort finden Sie Informationen zum CSS und zum JavaScript.
Demo
Das TypoScript un das hier zur Verfügung gestellte CSS orientiert sich an diesem Beispiel des suckerfish Menüs.
TypoScript, CSS und JavaScript
Bitte fügen Sie das folgende TypoScript, das JavaScript und das CSS in Ihre Website ein.
TypoScript
lib.suckerfish >
lib.suckerfish = HMENU
lib.suckerfish {
special = directory
special.value = 5
1 = TMENU
1 {
expAll = 1
wrap = <ul id="nav">|</ul>
NO = 1
NO {
linkWrap = <li>|</li>
}
IFSUB = 1
IFSUB {
wrapItemAndSub = <li>|</li>
}
}
2 < .1
2 {
wrap = <ul> | </ul>
IFSUB {
ATagParams = class="daddy"
}
}
3 < .2
}
lib.suckerfish >
lib.suckerfish = HMENU
lib.suckerfish {
special = directory
special.value = 5
1 = TMENU
1 {
expAll = 1
wrap = <ul id="nav">|</ul>
NO = 1
NO {
linkWrap = <li>|</li>
}
IFSUB = 1
IFSUB {
wrapItemAndSub = <li>|</li>
}
}
2 < .1
2 {
wrap = <ul> | </ul>
IFSUB {
ATagParams = class="daddy"
}
}
3 < .2
}
CSS
#nav, #nav ul {
float: left;
width: 100%;
list-style: none;
line-height: 1;
background: white;
font-weight: bold;
padding: 0;
border: solid #eda;
border-width: 1px 0;
margin: 0 0 1em 0;
}
#nav a {
display: block;
width: 10em;
w\idth: 6em;
color: #7C6240;
text-decoration: none;
padding: 0.25em 2em;
}
#nav a.daddy {
background: url(rightarrow2.gif) center right no-repeat;
background:green
}
#nav li {
float: left;
padding: 0;
width: 10em;
}
#nav li ul {
position: absolute;
left: -999em;
height: auto;
width: 14.4em;
w\idth: 13.9em;
font-weight: normal;
border-width: 0.25em;
margin: 0;
}
#nav li li {
padding-right: 1em;
width: 13em
}
#nav li ul a {
width: 13em;
w\idth: 9em;
}
#nav li ul ul {
margin: -1.75em 0 0 14em;
}
#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:hover, #nav li.sfhover {
background: #eda;
}#nav, #nav ul {
float: left;
width: 100%;
list-style: none;
line-height: 1;
background: white;
font-weight: bold;
padding: 0;
border: solid #eda;
border-width: 1px 0;
margin: 0 0 1em 0;
}
#nav a {
display: block;
width: 10em;
w\idth: 6em;
color: #7C6240;
text-decoration: none;
padding: 0.25em 2em;
}
#nav a.daddy {
background: url(rightarrow2.gif) center right no-repeat;
background:green
}
#nav li {
float: left;
padding: 0;
width: 10em;
}
#nav li ul {
position: absolute;
left: -999em;
height: auto;
width: 14.4em;
w\idth: 13.9em;
font-weight: normal;
border-width: 0.25em;
margin: 0;
}
#nav li li {
padding-right: 1em;
width: 13em
}
#nav li ul a {
width: 13em;
w\idth: 9em;
}
#nav li ul ul {
margin: -1.75em 0 0 14em;
}
#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:hover, #nav li.sfhover {
background: #eda;
}
JavaScript
Das JavaScript benötigen Sie, damit das Menü auch im InternetExplorer <7 funktionsfähig ist.
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);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);
TypoScript object not found (lib.suckerfish)