09. maj 2017 - 08:22Der er
8 kommentarer og 1 løsning
CSS Transition height
Jeg har nedenstående kode-eksempel. En hovedgruppe med undergrupper. Undergrupperne skal afsløres ved et klik på hovedgruppen. Antallet af undergrupper varierer og genereres af php.
Problemet er: Hvordan får jeg transition til at fungere når jeg ikke kan bestemme height i pixels (antallet af undergrupper varierer) ?
Jeg vil gerne om det er muligt at holde løsningen i CSS. Jeg har set på funktionerne i CSS men har ikke nok erfaring i at bruge det til at vide om der findes en løsning i CSS.
Problemet er at få transition til at fungere på en height som ikke er defineret i pixels.
Men så har jeg fundet følgende som jeg tror på en eller anden måde beregner en højde i pixels. Jeg ved godt det er javascript, men nu søger jeg bare alle løsninger
<script> var acc = document.getElementsByClassName("accordion"); var i;
for (i = 0; i < acc.length; i++) { // en løkke starter og kører for hvert tegn i accordion acc[i].onclick = function() { // der køres en funktion for hver gang der klikkes på et tegn? this.classList.toggle("active"); //?? var panel = this.nextElementSibling; if (panel.style.maxHeight){ panel.style.maxHeight = null; } else { panel.style.maxHeight = panel.scrollHeight + "px"; } } } </script>
Nu har jeg fundet ud af at eksemplet fungerer med procent hvis man definere position til alt andet end relative.
1. Kan nogen forklare hvorfor transition ikke fungerer på relative objekter?
Derudover så kan man ikke sætte transition til at stoppe med height: auto eller initial. Det er lidt træls, for så skal man alligevel have hjælp til at definere højden.
2. Jeg har ikke brug for at UL fylder hele siden, men kun så meget som indholdet fylder. Hvordan gør man det?
Der er ikke noget link til det, da siden ligger på mit skrivebord. Af den grund har jeg pastet hele sidekilden ind i spørgsmålet til hvis man selv vil afprøve løsningsforslag.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.