ich hab eine liste erstellt die wenn, ich dort raufgehe mit den Mauszeiger, eine Linie von recht nach links zieht. also einen Unterstrich. ich würde aber gerne die färbe dieses Unterstriches ändern. weißt du auch wie das geht?
als letztes wollte ich die Bilder und den text einblenden lassen (also das der text von oben runterschwebt wenn man noch unter scrollt) Ich hab nur keine Ahnung wie das geht kannst du mir da helfen?
Du solltest eine CSS-Klasse zu dem betreffenden Element hinzufügen, wenn über einen bestimmten Punkt gescrollt wurde. Das geht mit JavaScript und am besten mit einem IntersectionObserver.
Allerdings soll die Klasse erst hinzugefügt werden, wenn über einen bestimmten Punkt gescrollt wurde, also brauchst du dafür einen IntersectionObserver.
Irgendetwas solltest du schon sehen. Der .text sollte sich von unten nach oben bewegen um 100px und das .image sollte über 1 Sekunde einblenden, aber danach wieder unsichtbar sein.
Matthias
Ja
Paytoniumm
aha hi Matthias
Paytoniumm
warte kurz ich hab ne frage
Paytoniumm
kennst du dich auch mit SCSS aus?
Matthias
Ja auch
Paytoniumm
ich würde nämlich gerne auf meiner Websiide eine Animation verlangsamen. weiß du wie das geht?
Paytoniumm
*website
Matthias
animation-duration in CSS
Paytoniumm
aha danke
Matthias
Bitte, gern
Paytoniumm
ich hab eine liste erstellt die wenn, ich dort raufgehe mit den Mauszeiger, eine Linie von recht nach links zieht. also einen Unterstrich. ich würde aber gerne die färbe dieses Unterstriches ändern. weißt du auch wie das geht?
Matthias
Womit zeichnest du diese Linie?
Paytoniumm
kann ich dir kurz einen Codeabschnitt reinstellen?
Matthias
Ja klar
Paytoniumm
nav { position: fixed; right: 0; top: 0; background-color: rgb(255, 255, 255); height: 100vh; width: 50%; z-index: 999; text-transform: uppercase; flex: 1;
ul { list-style-type: none; padding: 0; margin-top: 12;
li { list-style: none; display: inline-block; position: relative; }
li::after{ content: " "; height: 2px; width: 0%; position: absolute; background: black; left: 0; bottom: -10px; transition: 1s; }
li a { text-decoration: none; }
li:hover::after{ width: 100%; } }
}
Paytoniumm
das ist in einer SCCS Datei
Matthias
Ja, sehe ich
Matthias
ok, nav ul li::after ist also die Linie
Matthias
background: black ist deine Farbe
Paytoniumm
jup
Matthias
Du kannst statt black einfach eine andere Farbe wählen
Paytoniumm
das hab ich schon versucht aber es geht nicht
Paytoniumm
aha ich weiß schon was ich falsch gemacht habe
Matthias
Was hast du versucht? Die ganze Zeile bitte
Matthias
Ok
Paytoniumm
ich. habe es in @media only screen and (min-width: 680px) rein geschrieben
Matthias
Ok
Paytoniumm
danke bis vielleicht irgendwann
Matthias
Gern
Paytoniumm
Matthias ich hätte da doch noch eine frage
Paytoniumm
als letztes wollte ich die Bilder und den text einblenden lassen (also das der text von oben runterschwebt wenn man noch unter scrollt) Ich hab nur keine Ahnung wie das geht kannst du mir da helfen?
Matthias
Ja
Paytoniumm
danke
Anonym
O_o
Matthias
Du solltest eine CSS-Klasse zu dem betreffenden Element hinzufügen, wenn über einen bestimmten Punkt gescrollt wurde. Das geht mit JavaScript und am besten mit einem IntersectionObserver.
Paytoniumm
aha ok. danke
Paytoniumm
ich verstehe
Paytoniumm
ich könnte das aber auch mit . CSS-Animationen machen oder?
Matthias
Das Element hätte dann normalerweise z.B.:
.images-and-text { transform: translateY(-100px); transition: transform 1s; }
Du kannst dann eine Klasse hinzufügen, wenn das Element im Viewport ist:
.images-and-text--visible { transform: translateY(0); }
Klasse hinzufügen geht in JavaScript mit:
document.querySelector('images-and-text').classList.add('images-and-text--visible');
Allerdings soll die Klasse erst hinzugefügt werden, wenn über einen bestimmten Punkt gescrollt wurde, also brauchst du dafür einen IntersectionObserver.
Anonym
Gesundheit
Matthias
Nein, nur mit CSS geht sowas nicht. Du kannst mit CSS höchstens die Animation beim Laden der Seite triggern z.B.
Paytoniumm
aha ok
Matthias
Nicht abhängig von der Scrollposition, dafür brauchst du JavaScript
Paytoniumm
ok
Paytoniumm
ich hab mich jetzt gerade mehr mit HTML und SCCS bzw. CSS beschäftigt deshalb hab ich ein paar Probleme mit JS
Paytoniumm
könnte ich das so machen?:
Matthias
Punkt vergessen bei der Klasse im querySelector, sorry:
document.querySelector('.images-and-text').classList.add('images-and-text--visible');
Paytoniumm
.image { opacity: 0; animation: fade-in 1s ease-in-out; } @keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } }
.text { transform: translateY(100px); animation: slide-in 1s ease-in-out; }
@keyframes slide-in { 0% { transform: translateY(100px); } 100% { transform: translateY(0); } }
Paytoniumm
so habe ich das jetzt.
Paytoniumm
aber aus irgendeinen Grund geht das nicht. ich weiß nicht warum
Matthias
Irgendetwas solltest du schon sehen. Der .text sollte sich von unten nach oben bewegen um 100px und das .image sollte über 1 Sekunde einblenden, aber danach wieder unsichtbar sein.
Paytoniumm
jup so sollt ees eigentlich sein
Paytoniumm
*es
Paytoniumm
aha jetzt geht es
Paytoniumm
ich habe ausversehen bei animation: fade-in 1s ease-in-out; statt 1s, 0 s geschrieben.
Paytoniumm
danke für deine hilfe
Matthias
Ok
Matthias
Du kannst animation-fill-mode verwenden, wenn du den Zustand nach Ablauf der Animation behalten möchtest
Paytoniumm
ok. das werde ich gleich probieren
Matthias
animation-fill-mode: forwards in deinem Fall
Paytoniumm
jup habe ich schon gemacht
Paytoniumm
danke nochmal für deine Hilfe und zeit
Matthias
Gern
Team Minecraft
kenne mich auch ein wenig aus
Paytoniumm
aha nice
Kissenelefant
Ich verstehe kein Wort
Kissenelefant
Kann das irgendwer auf deutsch übersetzen? XD
Cerberus
Näää
Cerberus
Programmiergeheumnisse
Cerberus
*geheimnisse
Anonym
Same
Paytoniumm
Musst du ach nd.
Paytoniumm
*auch
Paytoniumm
Geheimnisse würde ich das nicht nennen