Zu den Aufzeichnungen der tutorials.de-Live-Workshops
ERLEDIGT
NEIN
ANTWORTEN
12
ZUGRIFFE
400
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Stelo Stelo ist offline Mitglied Gold
    Registriert seit
    Jun 2005
    Beiträge
    130
    Hallo,

    und zwar lasse ich einige Bilder in verschiedene DIVs ausgeben (http://www.tutorials.de/forum/php/36...fsplitten.html).
    Nun möchte ich alle, außer das erste DIV beim Laden der Seite ausblenden, dass mache ich wiefolgt:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    <body onload="javascript:alles_aus()">
    <!-- ... hier werden die Bilder geladen -->
    <script>
    function alles_aus() {
    <?php for($i=2;$i<=$panels;$i++) {
     
    echo "document.getElementById(\"".$i."\").style.display='none'; \n";
    }
    ?>
    }
    </script>
    Nun werden aber kurz ALLE Bilder angezeigt und dann werden die unteren DIVs ausgeblendet. Das ist natürlich nicht so schön.

    Gibt es eine Möglichkeit, dem irgendwie vorzubeugen? Ich bin leider nicht so der JS-Kenner.

    Danke schon mal für eure Hilfe.
     

  2. #2
    Maik Tutorials.de Gastzugang
    Hi,

    da das Script erstmal das Dokument durchläuft, um im zweiten Arbeitsschritt die ermittelten DIV-Blöcke auszublenden, sind sie für diesen Zeitraum auch sichtbar.

    Wie wäre es, stattdessen einfach die Routine entgegengesetzt abzuwickeln? Alle DIV-Blöcke werden von Beginn an versteckt, und der Erste angezeigt

    mfg Maik
     

  3. #3
    Stelo Stelo ist offline Mitglied Gold
    Registriert seit
    Jun 2005
    Beiträge
    130
    Ach herje, manchmal bin ich aber auch doof.

    Müsste ich dann das display='none' direkt in den <div> Tag einfügen? Denn ein OnLoad kann ich dort ja nicht einfügen?!
    Hm ... da steh ich gerade mal wieder ein wenig auf dem Schlauch?!

    Ich bitte herzlichst um Aufklärung?!
     

  4. #4
    Maik Tutorials.de Gastzugang
    Die CSS-Eigenschaft kannst du mit dem style-Attribut im <div>-Tag notieren, oder du legst im zentralen Stylesheet deiner Seite (CSS-Datei) eine entsprechende Regel für diese DIVs an, die du beispielsweise über einen Klassennamen referenzieren kannst:

    HTML-Code:
    <div class="gallery"></div>
    Code css:
    1
    
    .gallery { display:none; }

    Den onload-Event nutzt du dann stattdessen zum Anzeigen des ersten der versteckten Objekte.

    mfg Maik
     

  5. #5
    Stelo Stelo ist offline Mitglied Gold
    Registriert seit
    Jun 2005
    Beiträge
    130
    Achso. Natürlich, jetzt wo du es sagst.

    Vielen lieben Dank.

    Ok also ich versuchte nun das ganze umzusetzen, aber irgendetwas scheine ich wohl falsch zu machen, dass ganze sieht nun ungefähr so aus:

    style.css
    Code :
    1
    
    .thumbs {display:none}
    Das funktioniert auch erst mal, aber das anzeigen des ersten möchte irgendwie nicht.

    Code :
    1
    2
    3
    4
    5
    6
    7
    
    <body OnLoad="javascript:alles_aus()">
    <div id="1" class="thumbs"></div>
     
    <script>
    function alles_aus() {
    document.getElementById(1).style.display='';
    }

    Die Firefox Fehlerkonsole sagt mir leider nicht, was ich falsch mache, deshalb muss ich euch noch einmal damit stören.
     

  6. #6
    Avatar von ComFreek
    ComFreek ComFreek ist offline [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.203
    Blog-Einträge
    3
    Im Skript-Tag fehlt:
    HTML-Code:
    <script type="text/javascript">
    Und man muss Zeichenketten in Anführungsstrichen übergeben:
    Code javascript:
    1
    
    var obj = document.getElementById("1").style.display = "";
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  7. #7
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.457
    Mir ist - rein von der Syntax her - noch etwas aufgefallen: eine ID oder Klasse darf als erstes Zeichen keine Ziffer haben.
     
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  8. #8
    Stelo Stelo ist offline Mitglied Gold
    Registriert seit
    Jun 2005
    Beiträge
    130
    Zitat Zitat von einfach nur crack Beitrag anzeigen
    Mir ist - rein von der Syntax her - noch etwas aufgefallen: eine ID oder Klasse darf als erstes Zeichen keine Ziffer haben.
    Danke für den Hinweis, das habe ich mal abgeändert.

    Mir ist aufgefallen, dass nun auch andere Funktionen nicht mehr tun was sie sollten. Und an denen hat sich nix geändert, der einzige Unterschied ist, dass ich eben vorher .display='none' per JS festgelegt habe und das nun in die CSS Datei geschrieben habe. Hier wäre noch die andere Funktion:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    function umschalten(div) {
    <?php for($i=1;$i<=$panels;$i++) {
     
    echo "document.getElementById(\"id".$i."\").style.display='none'; \n";
    }
    ?>
    document.getElementById(div).style.display='';
    }
    Diese sorgt im Prinzip dafür alle zu verstecken und nur das ausgewählte wieder anzuzeigen.
     

  9. #9
    Avatar von ComFreek
    ComFreek ComFreek ist offline [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.203
    Blog-Einträge
    3
    Poste mal den ausgegebenen Quelltext
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  10. #10
    Stelo Stelo ist offline Mitglied Gold
    Registriert seit
    Jun 2005
    Beiträge
    130
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    <script type="text/javascript">
    function alles_aus() {
    document.getElementById("id1").style.display = "";
    }
     
    function umschalten(div) {
    document.getElementById("id1").style.display='none'; 
    document.getElementById("id2").style.display='none'; 
    document.getElementById(div).style.display='';
    }
     
    </script>
     

  11. #11
    Avatar von ComFreek
    ComFreek ComFreek ist offline [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.203
    Blog-Einträge
    3
    Und wo genau übergibst den Parameter div bzw. ist sein Inhalt richtig?
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  12. #12
    Stelo Stelo ist offline Mitglied Gold
    Registriert seit
    Jun 2005
    Beiträge
    130
    Na ja, mir geht es im Moment hauptsächlich um die alles_aus() funktion, damit zu Beginn erst mal das erste DIV angezeigt wird, aber der Parameter div kommt hier her:
    Code :
    1
    2
    3
    
    <div class="panel">
    <a OnClick="javascript:umschalten(id1)" href="#">1</a></div>
    <div class="panel"><a OnClick="javascript:umschalten(id2)" href="#">2</a></div>
     

  13. #13
    Chef_De_Loup Chef_De_Loup ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Beiträge
    48
    Dir fehlen die ID Zuweisungen in deinem Ausschnitt. Hast Du die auch im richtigen Code drin? Und auch bei der Uebergabe ist es notwendig die ID als Text zu uebergeben.

    Code :
    1
    2
    
    <div id="id1" class="panel"><a OnClick="javascript:umschalten('id1')" href="#">1</a></div>
    <div id="id2" class="panel"><a OnClick="javascript:umschalten('id2')" href="#">2</a></div>

    Edit:
    Solltest Du mehr als nur zwei Divs verarbeiten wollen empfehle ich Dir eher den Umbau der Funktion zu einer Schleife und die Arbeit mit Namen fuer die Divs. Damit kannst Du die Funktion fuer alle Deine Aktionen verwenden und brauchst keine zusaetzlich AllesAus Funktion.

    Beispiel:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    <div name="specialone" class="panel"><a OnClick="javascript:showPanel(1)" href="#">1</a></div> // panel 1
    <div name="specialone" class="panel"><a OnClick="javascript:showPanel(2)" href="#">2</a></div> // panel 2
    // usw.
     
    function showPanel(index){
      var tags = document.GetElementsByName("specialone");
      for (var i=0;i<tags.length;i++){
        if (i == (index-1))
          tags[i].display = "inline";
        else
          tags[i].display = "none";
      }
    }
    Geändert von Chef_De_Loup (20.05.10 um 13:07 Uhr)
     

Ähnliche Themen

  1. OnClick - 2 Divs ausblenden, 1 Div einblenden
    Von waswiewo im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 17.05.10, 20:20
  2. DIVs via JS ausblenden
    Von aargau im Forum Javascript & Ajax
    Antworten: 10
    Letzter Beitrag: 26.06.08, 10:24
  3. divs ein-/ausblenden
    Von herrgarnele im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 04.06.07, 18:04
  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