kostenloser Webspace werbefrei: lima-city


DropDown mit klick

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    psd

    psd hat kostenlosen Webspace.

    Hi hab nun mein gewünschtes drop down menu und klappt auch alles super ohne js oder flash.

    nun kommt aber das problem.

    Gibts eine möglichkeit dieses untermenu erst nach einem klick auf den menu head zu öffnen??
    Oder muss ich jetzt auf js oder ahnliches zurück greifen ?

    das menu:

    HTML
    <ul id="Navigation" >
                      <li><h2>Menu</h2>
                             <ul>
                            <li><a href="//">Link1</a></li>
                            <li><a href="//">Link2</a></li>
                            <li><a href="//">Link3</a></li>
                             </ul>
                     </li>
                     <li><h2>Teamspeak</h2></li>



    CSS
    ul#Navigation a {
    	display: block;
    	font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
    	text-decoration: none;
    	height: auto;
    	width: auto;
    	text-align: left;
    	font-size: 14px;
    	vertical-align: middle;
    	background-color: #3d3d3d;
    	color: Silver;
    }
    
    ul#Navigation a:hover, a:active {
    	display: block;
                 text-decoration: none;
    	font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
    	height: auto;
    	width: auto;
    	text-align: left;
    	vertical-align: middle;
    	color: Red;
    }
    
      ul#Navigation {
                  margin: 0; padding: 0;
      }
      ul#Navigation li {
      	 display: inline;
                   list-style: none;
                  margin: 0; padding: 0;
    	 clear: both;
      }
      
      ul#Navigation li ul {
                  margin: 0 ; padding: 0;
    	 clear: both;
      }
      ul#Navigation li ul li {
                 margin: 0;
    	clear: both;
      }
      
       /* WICHTIG */
                  ul#Navigation li>ul {
                  display: none; top: 20px;
      }
      ul#Navigation li:hover>ul, ul#Navigation li>a#aktuell+ul {
                display: block;
      }


    Beitrag zuletzt geändert: 26.9.2009 16:14:30 von psd
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. d************h

    Ich glaube du kannst das mit :focus statt mit :hover oder :active machen. musste einfach mal ausprobieren!
  4. Autor dieses Themas

    psd

    psd hat kostenlosen Webspace.

    dynamic-search schrieb: Ich glaube du kannst das mit :focus statt mit :hover oder :active machen. musste einfach mal ausprobieren!


    cool danke erstmal funktioniert auch super mit :active aber nur solange ich die maustaste hebe ^^ wie kann ich das umgehn ??
  5. Ich habe das jetzt für mich mal eine Stunde rumgetestet und keine Lösung gefunden. Egal ob mit :visited, :focus, :link, :after u.s.w....
    Ich schätze um Jacascript kommst Du da nicht herum, weil keine Pseudoklasse greift.

    Gruß Tom
  6. Autor dieses Themas

    psd

    psd hat kostenlosen Webspace.

    tom-moeller schrieb:
    Ich habe das jetzt für mich mal eine Stunde rumgetestet und keine Lösung gefunden. Egal ob mit :visited, :focus, :link, :after u.s.w....
    Ich schätze um Jacascript kommst Du da nicht herum, weil keine Pseudoklasse greift.

    Gruß Tom


    genau das habe ich auch gemacht aber mit java kenn ich mich leider nicht aus und komm somit auch nicht an einen onClick code :-(
  7. e********l

    Ja, du brauchst da JavaScript!

    Ist grundsätzlich relativ einfach. Man müsste nur wissen wie das DropDown Verhalten sein soll. Im einfachsten Fall legst du auf die onclick Eigenschaft deine Funktion zum anzeigen des Untermenus und speicherst ab welches DropDown Menu zur Zeit aktiv ist.

    Bei Fragen zum JS Code kann ich dir behilflich sein.
  8. psd schrieb:
    genau das habe ich auch gemacht aber mit java kenn ich mich leider nicht aus und komm somit auch nicht an einen onClick code :-(


    Es gibt doch in den ganzen Scriptpools im Netz schon fertige Sachen, mal Tante G fragen.

    Appropos...... javascript ist nicht java.....

    Ich würde z.B. alles über DIV-Container lösen und mir über DW ein Javascript basteln lassen, dass mir die DIVs dann mit einem Eventhandler bei onClick öffnet und schließt. Nachteil ist, dass es nicht so sauber ist, wie Du es Dir wünschst und, dass die Überschrift "Menu" ein Link sein muss, ein # oder besser javascript:; damit die Seite nicht nach oben rutscht, falls das Menu im unteren Teil der Seite ist. Aber mit einer passenden CSS Formatierung läßt sich das verstecken.

    Gruß
  9. e********l

    UL/LI sowie DL/DD/DT für Navigations Elemente ist schon das optimale. Es kommt jetzt halt darauf an wie sein Dropdown aufgebaut ist und ob da noch Effekt mit hinein sollen. Danach ist es zu entscheiden ob UL oder DL verwendet werden sollte und das Javascript ist das kleinste Problem ^^
  10. Autor dieses Themas

    psd

    psd hat kostenlosen Webspace.

    java - javascript oO

    ja das wusste ich und meinte ich.

    DW(dreamweaver ??) kommt nicht in frage da ich durch meine codes blicken will :-D
    bis jetzt hab ich eigentlich alles selbst geschrieben und sollte auch so bleiben oder eben eine erklärung welcher befehl was auslöst.

    die scriptpools sind nicht ganz mein fall -.- da ich durch diese nicht mehr durchblick also durch die Codes.

    gibts nicht ein einfachen coder der mir egal was ( einstellbar) nach einem klick öffnet und nach einem weiteren wieder schliest ohne
    das layout zu zerstören einfach div über div legen ??

    danke für eure antworten .
  11. mein tipp ist jQuery.
    Binde einfach diesen code noch in dein head- tag ein:
    <script src="http://code.jquery.com/jquery-latest.js"></script>
     <script>
      $(document).ready(function(){
        
        $("ul#Navigation h2").click(function () {
          $("ul#Navigation li ul li").slideToggle("slow");
        });
    
      });
      </script>

    dadurch wird dein menue ein und ausgeblendet. falls das script nicht funktioniert usst du nochmal den pfad zu dem auslöser bzw. zum ziel anpassen. hoffees hilft dir.
    gruß
    Daniel
    ps.: bei fragen einfach stellen.:thumb:
  12. psd schrieb:

    DW(dreamweaver ??) kommt nicht in frage da ich durch meine codes blicken will :-D


    Ich meine, Du sollst ja nicht das Layout in DW machen, sondern Dir das JS erstellen lassen. Das Layout bleibt unberürt. Und dann kannst Du Dir den Code anschauen und analysieren was warum wie funktioniert.


    bis jetzt hab ich eigentlich alles selbst geschrieben und sollte auch so bleiben oder eben eine erklärung welcher befehl was auslöst.

    die scriptpools sind nicht ganz mein fall -.- da ich durch diese nicht mehr durchblick also durch die Codes.


    Das Selbe gilt für die Scriptpools. Warum das Rad neu erfinden, wenn ein anderer es schon mal gemacht hat und man dadurch lernen kann.
    Wenn evil-devil oder goldeneye Dir hilft, ist das ja auch nichts anderes, na ja, außer dass Du ihn sofort fragen kannst was er da für Dich geschrieben hat.

    Gruß
  13. e********l

    psd schrieb:
    nach einem klick öffnet und nach einem weiteren wieder schliest ohne

    function drop(name) {
         if (name === null)
              return false;
         
         var obj = document.getElementById(name);
         if (obj === null)
              return false;
    
         obj.style.display = obj.style.display === 'block' ? 'none' : 'block';
    }


    Idealerweise sollte das Untermenu dann mit einer ID und style="display: none" vorbelegt sein.
  14. Autor dieses Themas

    psd

    psd hat kostenlosen Webspace.

    evil-devil schrieb:
    psd schrieb:
    nach einem klick öffnet und nach einem weiteren wieder schliest ohne

    function drop(name) {
         if (name === null)
              return false;
         
         var obj = document.getElementById(name);
         if (obj === null)
              return false;
    
         obj.style.display = obj.style.display === 'block' ? 'none' : 'block';
    }


    Idealerweise sollte das Untermenu dann mit einer ID und style="display: none" vorbelegt sein.


    ähm danke dafür aber das ist genau das was ich nicht wollte :-D ich als nicht könnner blick da reingarnicht mehr durch ^^

    @goldeneye ok durchblicken tu ich da auch nciht aber nachvollziehen kann ichs einiger maßen aber:

    versuch eins - einfach eingesetzt und gespeichert / durch meine css drop down gabs problem -> css definitionen rausgenommen ( fürs dropdown) jetzt ist das menu offen und wenn ich auf h2 klicke klappt es sich zusammen aber sofort wieder auf oO ?? hilfe :-D
  15. e********l

    Öhm, PSD, das ist das einfachste was man machen kann. Du übergibst der Funktion den ID-Namen des Untermenus und die Funktion schaut dann nach ob du einen Namen übergeben hast und ob es im DOM ein Element mit der besagten ID finden kann. Wenn nicht passiert nicht.
    Hat es aber das Element gefunden, dann wird überprüft wie sein CSS Display Wert gesetzt ist und entweder wird es dann sichtbar oder eben unsichtbar gemacht. Ganz simpel.

    Du musst lediglich die Funktion ins HTML einfügen...
    <li onclick="drop('sub-menu')"><h2>Menu</h2>
         <ul id="sub-menu">
              <li><a href="//">Link1</a></li>
              <li><a href="//">Link2</a></li>
              <li><a href="//">Link3</a></li>
         </ul>
    </li>
    <li onclick="drop('sub-teamspeak')"><h2>Teamspeak</h2>
         <ul id="sub-teamspeak">
              <li><a href="//">Serverliste</a></li>
         </ul>
    </li>

    Ganz einfach gehalten.
  16. Autor dieses Themas

    psd

    psd hat kostenlosen Webspace.

    das ist doch mal eine antwort wie sie lange keiner mehr geschrieben hat :-D

    Erklärung
    exaktes beispiel
    danke :-D

    wenn alles klappt bekommste ehren platz in dem copyreight hehe


    /** edit aber es klappt nicht nun haut es mit mein komplettes css raus hmmm
    /****edit klappt das auch bei div containern ?? ohne das sich etwas verschiebt ??

    Beitrag zuletzt geändert: 1.10.2009 14:12:46 von psd
  17. e********l

    Sehe gerade...hab das
    style="display: none;"
    bei den Untermenu ULs vergessen. Sonst sind die ja von Anfang an sichtbar ^^"
  18. Nur als Information: Man kann es mit CSS machen. JavaScript ist deutlich einfacher, natürlich, da die CSS-Variante ein wenig Überlegung erfordert.

    Ein möglicher Ansatz:
    Man klickt, die active-Pseudoklasse wird aufgerüfen. Wenn die Maustaste wieder oben ist verschwindet es natürlich. Damit das Menü offen bleibt nutzt man zusätzlich zum :active noch ein :hover.

    Hier mal ein Pseudo-CSS-codeansatz:
    li:active ul {
    display: block;
    }
    li ul:hover {
    display: block;
    }
    Alles was man machen muss, ist das Sub-UL über das übergeordnete LI zu verschieben.

    Wenn dich interessiert, wie man das genau macht, kann ich dir einen konkreten Code geben.

    MfG
  19. Autor dieses Themas

    psd

    psd hat kostenlosen Webspace.

    @ nikic

    klar interresiert es mich :-D möchte so wenig wie möglich javascripts verwenden eine reine css html seite :-D die sich sehn lassen kann hehe.

    egal wie lange es braucht :-D

    also wichtig ist mir das ich :

    Menu auswahl
    - link1
    - link2
    Menu auswahl

    das untereinander ! damit wenn ich auswahl 1 auf hab auswahl 2 nach unten mit verschiebt usw.
  20. e********l

    nikic schrieb:
    Hier mal ein Pseudo-CSS-codeansatz:
    li:active ul {
    display: block;
    }

    Damit schließt du den IE schon mal gänzlich aus. Denn Hover/Active auf LI und anderen non A Elementen geht zwar ab IE7, aber bisher hab ich da nur schlechte Erfahrungen mit gemacht. Dann müsste man mit A und display: block fürs A herum tricksen.
  21. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!