ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
330
330
EMPFEHLEN
-
Hallo Gemeinde,
ich habe folgendes Menü:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
´function initMenu() { $('#menu ul').hide(); $('#menu ul:first').show(); $('#menu li a').click( function() { var checkElement = $(this).next(); if((checkElement.is('ul')) && (checkElement.is(':visible'))) { return false; } if((checkElement.is('ul')) && (!checkElement.is(':visible'))) { $('#menu ul:visible').slideUp('normal'); checkElement.slideDown('normal'); return false; } } ); } $(document).ready(function() {initMenu();});
Der Effekt ist, dass wenn man auf das Listenelement klickt, die darunterliegenden Unterlistenelement aufklappen.
Jetzt möchte ich aber zusätzlich, dass wenn ich auf das Listenelement klicke, auch zu dem Anker gescrollt wird.
Z. Bspl:
Hat jemand eine Idee, wie ich das verwirklichen kann?HTML-Code:<li> <a href="#comfort">Comfort Apartments</a> <ul> <li><a href="http://www.meineWebseite.de/atelier.html">Atelier Apartment</a></li> <li><a href="http://www.meineWebseite.de">da Vinci Apartment</a></li> <li><a href="http://www.meineWebseite.de/hardy.html">Hardy Apartment</a></li> </ul> </li>
Danke
-
Was hast du von der slide-Animation, wenn man ohnehin direkt runter scrollt? Nichts desto trotz, hier mal der Code. Habe deinen Code auch gleich mal komprimiert.
Code javascript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
function initMenu() { $('#menu').find('ul').hide().filter(':first').show().end().end().find('> li > a').click( function(e) { e.preventDefault(); var checkElement = $(this).next(); if(checkElement.is('ul:hidden')) { $('#menu ul:visible').slideUp('normal'); checkElement.slideDown('normal'); } //Zum Anker scrollen var hash = $(this).attr('href'); if(/^#\w$/.test(hash)) { var anchor = $(hash); $(window).scrollTop( anchor.offset().top ); } } ); }
-
Hallo CPoly,
das Menü befindet sich in einem Layer, der mitsrollt, also "fixed" ist.
Wenn ich deine Variante nehme, scrollt es zwar schön zum Anker, das Menü ist aber ständig offen.
Wenn ich
dazunehme, ist das Menü wieder geschlossen, scrollt aber nicht zum Anker.Code :1
$(document).ready(function() {initMenu();});
Hast du vielleicht noch ne Idee?
Danke.
-
Das document-ready muss weiterhin da sein. Irgendwie muss die Funktion ja aufgerufen werden.
Ich hab meinen Code nochmal verändert, weil eigentlich scroll der Browser ja von selbst zum Anker, nur hast du das mit dem return false unterbunden.
Code javascript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
function initMenu() { $('#menu').find('ul').hide().filter(':first').show().end().end().find('> li > a').click( function(e) { var checkElement = $(this).next(); if(checkElement.is(':visible')) { e.preventDefault(); return false; } if(checkElement.is('ul:hidden')) { $('#menu ul:visible').slideUp('normal'); checkElement.slideDown('normal'); } return true; } ); } $(document).ready(function() {initMenu();});
-
So geht's

Vielen Dank.
Ähnliche Themen
-
Hife!!....Daten aus Dataset auslesen
Von Trigoor2 im Forum .NET DatenverwaltungAntworten: 1Letzter Beitrag: 16.08.11, 15:40 -
Robots modellieren, Hife...
Von niesi im Forum Cinema 4DAntworten: 3Letzter Beitrag: 07.04.06, 16:20 -
Director Hife
Von kobo im Forum Flash PlattformAntworten: 3Letzter Beitrag: 05.08.05, 07:10 -
Brauche Hife für Design
Von son gohan im Forum CSSAntworten: 10Letzter Beitrag: 04.01.05, 21:53 -
Hife bei Addition in JavaScript
Von marcoman111 im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 12.12.04, 11:37





Zitieren

Login





