tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
506
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    herrgarnele herrgarnele ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Ort
    Bayern
    Beiträge
    182
    Hallo, ich hab mal wieder eine Frage.. :-/

    Ich blende auf meiner Site verschiedene div's per JavaScript ein bzw. aus.
    Das JS dafür schaut so aus:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    function fadeIn(targetID) {
        obj = document.getElementById(targetID);
        obj.style.display = 'block';
    }
    function fadeOut(targetID) {
        obj = document.getElementById(targetID);
        obj.style.display = 'none';
    }
    Im html wird es so aufgerufen:
    Code :
    1
    2
    3
    4
    
    <a href="#" onclick="fadeIn('meinlayer')">
    <div id="meinlayer" style="display:none;">
            <a href="#" onclick="fadeOut('meinlayer')">close</a>
    </div>
    Nun habe ich aber mehrere Layer an derselben Stelle, die alle so eingefadet werden können. Ich möchte aber nicht, dass 2 Layer gleichzeitig eingeblendet sind.

    Also müsste ich im JS beim fadeIn eine Abfrage in der Richtung
    if(irgendein Layer hat display:block){
    fadeOut(alle sichtbaren)
    fadein(den geklickten)
    }

    Leider weiss ich nicht wie das konkret in Code umzusetzen ist.
    Bitte helft mir!!
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Du könntest bei Einblenden die ID des eingeblendeten Elementes in einer Variablen speichern.
    Diese Variable setzt du eingangs auf "false".

    Willst du dann etwas einblenden, und diese Variable ist nicht "false", und sie ist nicht identisch mit der ID des einzublendenden Layers, dann blendest du den Layer mit dieser ID aus.
     

  3. #3
    herrgarnele herrgarnele ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Ort
    Bayern
    Beiträge
    182
    Hi Sven!

    Danke für Deine Anregung!
    Die Richtung ist glaub ich richtig. Ich hätte da aber 2 Fragen:

    Wo deklariere ich die Variable mit init-Wert false? Muss ich die ins html-Dokument reinschreiben oder 'darf' ich die auch in meiner ausgelagerte .js deklarieren?

    Und zweitens- es könnte ja auch passieren, dass auch mehrere Ebenen auf einmal eingeblendet sind. Wie könnt ich das denn umgehen?
    //EDIT: Ups sorry, Denkfehler. Wenn ich nen Layer einblende checke ich ja immer, ob schon einer offen ist. Daher kann ja zu keiner Zeit ein zweiter offen sein. Wie peinlich!

    // NOCHMAL EDIT: Inzwischen hab ichs doch hinbekommen. Trotz nicht vorhandenem Schlag auf den Hinterkopf hat sich mein Denkvermögen wohl dramatisch erhöht gerade eben
    Falls irgendwann mal jemand ein ähnliches Problem hat (gerne auch zur Korrektur ) poste ich hier mal meine Lösung:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    var opn = false;
    function fadeIn(targetID) {
        if(opn != false) {
        opn.style.display = 'none';
        }
        obj = document.getElementById(targetID);
        obj.style.display = 'block';
        opn = obj;  
    }
    function fadeOut(targetID) {
        obj = document.getElementById(targetID);
        obj.style.display = 'none';
    }
    Geändert von herrgarnele (04.06.07 um 18:28 Uhr)
     

Ähnliche Themen

  1. DIVs ausblenden
    Von Stelo im Forum Javascript & Ajax
    Antworten: 12
    Letzter Beitrag: 20.05.10, 12:54
  2. OnClick - 2 Divs ausblenden, 1 Div einblenden
    Von waswiewo im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 17.05.10, 20:20
  3. DIVs via JS ausblenden
    Von aargau im Forum Javascript & Ajax
    Antworten: 10
    Letzter Beitrag: 26.06.08, 10:24
  4. Spalte ausblenden (Toggle) mit DIVs simulieren
    Von uprocka im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 17.04.07, 19:05
  5. Mehrere Text-divs ausblenden...
    Von stefancp im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 01.11.05, 13:40