javascript lägga till css transition efterhand

Permalänk
Medlem

javascript lägga till css transition efterhand

Hej!

Efter att ha suttit med detta problem x-antal timmar och inte hittat ett vettigt svar på nätet tänkte jag fråga här.

Jag försöker lägga till två olika klasser till element.

Första klassen gömmer elementet med "visible:hidden" och "opacity:0", andra klassen lägger till "transition" till samma element. Men det spelar ingen roll hur jag lägger upp det, elementet göms alltid med en "transition". Det är som om den läggs på först även om man specifikt lägger den efter i koden. Har även försökt med att lägga dem i varsin promise. Men ändå göms elementen med en transition.

Den enda lösningen hittills är att använda sig av settimeout. Men hur fungerar logiken att transition verkar alltid "finnas" med även om man lägger klassen på i efterhand? Är det att klassen läggs på först, men andra klassen läggs på såpass snabbt innan webbläsaren hunnit börja rendera det?

Lite luddigt men hoppas ni förstår.

Visa signatur

Gaemer Addicted!

Permalänk
Medlem

@we_man1: Nu är jag inte helt säker på vad du vill ha för resultat. Men om du kastar på transition så kommer den mer eller mindre alltid att triggas om du inte har dolt elementet från start.

Men måste du lägga till klasserna med javascript?
Exempelvis: Du skulle kunna låta klassen som alltid döljer elementet alltid finnas där medan transition sedan kastas på etc

Permalänk
Medlem
Skrivet av asabla:

@we_man1: Nu är jag inte helt säker på vad du vill ha för resultat. Men om du kastar på transition så kommer den mer eller mindre alltid att triggas om du inte har dolt elementet från start.

Men måste du lägga till klasserna med javascript?
Exempelvis: Du skulle kunna låta klassen som alltid döljer elementet alltid finnas där medan transition sedan kastas på etc

Hej!

Jo det stämmer. Tänker väl mest om JavaScript inte är aktiverat hos användaren så kommer inte elementet vara dold. Därför försöker man på sig detta.

Men min fundering är mest varför transition ens triggas när den klassen läggs på efter man lagt på klassen som "visar" elementen.

Visa signatur

Gaemer Addicted!

Permalänk
Medlem
Skrivet av we_man1:


Men min fundering är mest varför transition ens triggas när den klassen läggs på efter man lagt på klassen som "visar" elementen.

DOM-förändringarna sker först när ditt javascript har kört klart, så praktiskt sett får elementet bägge klasser på samma gång.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

DOM-förändringarna sker först när ditt javascript har kört klart, så praktiskt sett får elementet bägge klasser på samma gång.

Ok då förstår jag.

Finns det någon vettig lösning förutom en settimeout? Då det känns lite av en "hacky" lösning.

Men tack för förklaringen!

Visa signatur

Gaemer Addicted!

Permalänk
Medlem

@we_man1: alright, vill minnas att det finns någon "transition delay" som du skulle kunna kasta på klassen. Men vet inte hur pass mycket det faktiskt skulle hjälpa dig

Permalänk
Medlem
Skrivet av asabla:

@we_man1: alright, vill minnas att det finns någon "transition delay" som du skulle kunna kasta på klassen. Men vet inte hur pass mycket det faktiskt skulle hjälpa dig

En bra idé men inte något som hjälper i detta fall tyvärr.

Det ska finnas en transition, bara inte första gången. Men får helt enkelt använda en timeout tror jag.

Visa signatur

Gaemer Addicted!

Permalänk
Medlem

Kan du inte göra en snabb jsfiddle eller något som man kan knåpa med? Jag har lite svårt att reproducera bekymret i chrome