Antworten auf deine Fragen:
Neues Thema erstellen

"read more" button

E

enjoyHB

Guest

Hallo liebe Community,
ich komme bei einem, für viele von euch sehr einfachen, Problem nicht weiter.

Ich möchte ein simples onclick event schalten bei dem sich ein Text ausklappt. Ein klassischer "read more" button also :) Der Text der ausklappt soll durch einen transition Effekt "aufklappen".

Mein Lösungsansatz:

Code:
<p id="more-open" style="display:none; transition:display 2s">Viel Text.</p>
<p onclick="document.getElementById('more-open').style.display='block'">Mehr lesen</p>

Das Anzeigen funktioniert so ohne Probleme. Der transition Befehl ist nur das Problem. Ich habe gelesen das transition nicht mit display funktioniert - sehr schade, warum eigentlich nicht?

Deshalb bin ich zu dem folgenden alternativen Lösungsweg gekommen:

Code:
<p id="more-open" style="opacity:0; transition:opacity 2s">Viel Text.</p>
<p onclick="document.getElementById('more-open').style.opacity='1'">Mehr lesen</p>

Funktioniert! Aber das Problem wird euch schon aufgefallen sein. Der Text "Viel Text" nimmt jetzt schon Platz ein, obwohl dieser eben wie bei der display:none Eigenschaft nicht berücksichtigt werden soll, solange dieser nicht sichtbar ist. "Visibility:hidden" zu benutzen ist auch keine Alternative - gleiches Problem wie bei "opacity".

Wie könnte ich dieses Problem noch lösen? Angemerkt ich lerne derzeit noch Javascript und bin "Anfänger" - gebe aber mein bestes :).

Ich hoffe ich konnte das Problem gut beschreiben, ich werde gerne auf Nachfragen eingehen und das Problem genauer beschreiben, falls nötig.

Danke,
LG
 

cebito

undefined

Versuchs mal mit "height:0; overflow:hidden;" und dann nach Klick "height:auto;" (so ungeprüft aus dem Bauch raus, sollte aber funktionieren)
 
E

enjoyHB

Guest

Hey,
danke für eure Antworten! Die Lösung von cebito funktioniert einwandfrei!

Code:
<p id ="y" onclick="document.getElementById('more-open').style.height='auto'">Mehr lesen</p>
<p id="more-open">Viel Text.Viel Text.Viel Text.</p>
Code:
#more-open {
  height:0;
  overflow: hidden;
    -webkit-transition: height 300ms ease-out;
    -moz-transition: height 300ms ease-out;
    -o-transition: height 300ms ease-out;
    -ms-transition: height 300ms ease-out;
    transition: height 300ms ease-out;
}

Danke erst einmal! :)
Jetzt ist das zweite Problem das smoothe aufklappen. Auch wenn ich den height nun durch einen transition tag verzögert habe, funktioniert dies leider nicht. Ich habe keinen Anhaltspunkt warum nicht, habt ihr Ideen?
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.611
Beiträge
1.538.341
Mitglieder
67.524
Neuestes Mitglied
BSKGA
Oben