mootoolsnav - click statt mousover --> Einblendeffekt verschwunden
Hallo,
Ich würde gerne die mootoolsnav einsetzen. Allerdings brauche ich unbedingt, dass die Untermenüpunkte bei einem Klick statt bei Mouseover erscheinen. Ich habe deshalb in dem Template "nav_moomenu.tpl" statt "onmouseover="moomenu_display" "onclick="moomenu_display"" eingefügt.
Es funktioniert zwar, dass die Unterpunkte erst erscheinen, wenn man auf den entsprechenden Menüpunkt in Level 1 klickt, jedoch erscheinen sie einfach und "blenden" sich nicht langsam ein. Das schaut natürlich nicht so elegant aus!
PHP-Code:
<?php else: /* Mit Untermenüs */ ?>
<li class="<?php if ($item['class']) echo $item['class']; ?> menutoggler"><a href="<?php echo $item['href']; ?>"<?php if ($item['class']): ?> class="<?php echo $item['class']; ?>"<?php endif; ?><?php if ($item['accesskey'] != ''): ?> accesskey="<?php echo $item['accesskey']; ?>"<?php endif; if ($item['tabindex']): ?> tabindex="<?php echo $item['tabindex']; ?>"<?php endif; ?> onclick="this.blur();<?php echo $item['target']; ?>" onclick="moomenu_display(<?php echo $GLOBALS['accorditem'][$this->level]; ?>)" onmouseover="moomenu_fire()"><?php echo $item['link']; ?></a><?php echo $item['subitems']; ?></li>
<!-- count accorditem -->
<?php $GLOBALS['accorditem'][$this->level]++; ?>
<?php endif; ?>
Kann mir jemand dabei helfen?
Die (leider nur halbe) Lösung ...
In der nav_moomenu.tpl muss die Zeile 35 angepasst werden:
Statt
PHP-Code:
<li class="<?php if ($item['class']) echo $item['class']; ?> menutoggler"><a href="<?php echo $item['href']; ?>"<?php if ($item['class']): ?> class="<?php echo $item['class']; ?>"<?php endif; ?><?php if ($item['accesskey'] != ''): ?> accesskey="<?php echo $item['accesskey']; ?>"<?php endif; if ($item['tabindex']): ?> tabindex="<?php echo $item['tabindex']; ?>"<?php endif; ?> onclick="this.blur();<?php echo $item['target']; ?>" onmouseover="moomenu_display(<?php echo $GLOBALS['accorditem'][$this->level]; ?>)" onmouseout="moomenu_fire()"><?php echo $item['link']; ?></a><?php echo $item['subitems']; ?></li>
muss es lauten:
PHP-Code:
<li class="<?php if ($item['class']) echo $item['class']; ?> menutoggler"><a href="<?php echo $item['href']; ?>"<?php if ($item['class']): ?> class="<?php echo $item['class']; ?>"<?php endif; ?><?php if ($item['accesskey'] != ''): ?> accesskey="<?php echo $item['accesskey']; ?>"<?php endif; if ($item['tabindex']): ?> tabindex="<?php echo $item['tabindex']; ?>"<?php endif; ?> onclick="this.blur();<?php echo $item['target']; ?>" onclick="moomenu_display(<?php echo $GLOBALS['accorditem'][$this->level]; ?>)"><?php echo $item['link']; ?></a><?php echo $item['subitems']; ?></li>
Also einfach "onmouseover="moomenu_display..." in "onclick="moomenu_display..." umtaufen und entsprechendes onmouseout dahinter entfernen.
Leider ist das nur die halbe Lösung, denn bevor sich die mootools-Navigation komplett aufgebaut hat, wird die angeklickte (d.h. die dem aufklappenden Baum übergeordnete Seite) schon aufgerufen. Das führt dazu, dass die Navigation "springt". Zu meiner Projektsite HIER KLICKEN.
HIER scheint's dagegen zu funktionieren (Seitenaufrauf erst NACH Aufbau der Navigation). Ich schätze, hier wurde von Hand (per JS?) eine Verzögerung eingebaut (die würde ich in Kauf nehmen). Ist aber nur ein Verdacht. Habe schon gesucht, aber nix gefunden.
Vielleicht hilft aber mein Hinweis weiter. Würde mich über eine Lösung (die andere Hälfte ;-)) oder auch weitere Hinweise freuen.