Come aggiungere una transizione di espansione/compressione?Aggiungi transizione CSS3 Espansione/compressione
risposta
Questa è la mia soluzione che regola l'altezza automaticamente: http://jsfiddle.net/9ccjE/
ho usato la soluzione che r3bel postato: Can you use CSS3 to transition from height:0 to the variable height of content?
'.measuringWrap' non è necessario. Puoi usare la proprietà scrollHeight di '.growDiv' http://jsfiddle.net/9ccjE/293/ – Guria
Anche codice più corto usando l'operatore ternario: http://jsfiddle.net/9ccjE/838/ – Robbendebiene
questo dovrebbe funzionare, dovuto provare un po 'troppo ..: D
Buono, ma come evitare di impostare l'altezza in javascript? La lunghezza del contenuto all'interno della classe più sta per variare. – Felix
come scritto [qui] (http://stackoverflow.com/a/3512194/1517380) questo non è possibile atm (dato che volevi avere un'animazione giusta?) tranne con [una soluzione alternativa costosa qui descritta] (http://stackoverflow.com/questions/3149419/can-you-use-css3-to-transition-from-height0-to-the-variable-height-of-content – r3bel
ho modificato nuovamente il jsfiddle e aggiunto una "soluzione" per l'altezza dinamica, ma devi ottenere l'altezza del menu a discesa ogni volta che l'altezza del menu a discesa cambia con javascript: [jsfiddle] (http://jsfiddle.net/Bq6eK/217 /). non ti garantisco che funzioni correttamente con tutti i browser: D – r3bel
http://jsfiddle.net/Bq6eK/215/
Io non modificare il codice per questa soluzione, ho scritto il mio proprio invece. La mia soluzione non è esattamente quella che hai chiesto, ma forse potresti farcela con le conoscenze esistenti. Ho commentato anche il codice, quindi sai cosa sto facendo esattamente con le modifiche.
Come soluzione per "evitare l'impostazione dell'altezza in JavaScript", ho appena reso "maxHeight" un parametro nella funzione JS denominato toggleHeight. Ora può essere impostato nell'HTML per ogni div di classe espandibile.
Lo dirò in anticipo, non ho molta esperienza con i linguaggi front-end e c'è un problema in cui è necessario fare clic due volte sul pulsante "Mostra/nascondi" inizialmente prima dell'avvio dell'animazione. Sospetto che sia un problema con attenzione.
L'altro problema con la mia soluzione è che si può effettivamente capire cos'è il testo nascosto senza premere il pulsante mostra/nascondi semplicemente facendo clic sul div e trascinando verso il basso, è possibile evidenziare il testo che non è visibile e incollarlo in uno spazio visibile
Il mio suggerimento per un prossimo passo in cima a quello che ho fatto è di farlo in modo che il pulsante mostra/nascondi cambi dinamicamente. Penso che tu possa capire come farlo con ciò che già sembra sapere sul mostrare e nascondere il testo con JS.
Ho apportato due modifiche minori: http://jsfiddle.net/Bq6eK/215/. 'onclick =" ... "' dovrebbe restituire false, e l'altezza dovrebbe essere impostata direttamente per l'elemento, non nel CSS. Altrimenti devi cliccare due volte per aprire la finestra, perché 'elem.style' contiene solo lo stile impostato direttamente per l'elemento, ma non gli stili effettivi. – kay
Grazie! Ora capisco. – ayang9
Ecco una soluzione che non utilizza affatto JS. Utilizza invece checkboxes.
È possibile nascondere la casella di controllo con l'aggiunta di questo al vostro CSS:
.container input{
display: none;
}
e quindi aggiungere un po 'di stile per farlo sembrare come un button.
La soluzione non applica un'altezza in base alla quantità di testo. Nel CSS devi decidere l'altezza del div checked: '.ac-container input: checked ~ article.ac-small { \t height: 140px; } 'Ho bisogno di una soluzione che applichi l'altezza in base al contenuto. – Felix
OMG, ho cercato di trovare una semplice soluzione a questo per ore . Sapevo che il codice era semplice ma nessuno mi ha fornito quello che volevo. Quindi, finalmente, è arrivato il momento di lavorare su un codice di esempio e abbiamo creato qualcosa di semplice che chiunque non possa usare JQuery richiesto. Semplice javascript e css e html. Per far funzionare l'animazione devi impostare l'altezza e la larghezza o l'animazione non funzionerà. Trovato fuori nel modo più duro.
<script>
function dostuff() {
if (document.getElementById('MyBox').style.height == "0px") {
document.getElementById('MyBox').setAttribute("style", "background-color: #45CEE0; height: 200px; width: 200px; transition: all 2s ease;");
}
else {
document.getElementById('MyBox').setAttribute("style", "background-color: #45CEE0; height: 0px; width: 0px; transition: all 2s ease;");
}
}
</script>
<div id="MyBox" style="height: 0px; width: 0px;">
</div>
<input type="button" id="buttontest" onclick="dostuff()" value="Click Me">
- 1. Transizione CSS3 non funzionante
- 2. Transizione CSS3 - Effetto dissolvenza
- 3. Come smettere di CSS3 transizione
- 4. evento click di transizione CSS3
- 5. Transizione Css3 solo su scala
- 6. Aggiungi transizione a un'animazioneDrawable
- 7. Impostare una transizione CSS3 su nessuna
- 8. Transizione CSS3 - cambia l'animazione "punto di ancoraggio"?
- 9. Bug in transizione CSS3 ruotateY su Safari?
- 10. Fallback JQuery per la transizione CSS3
- 11. La transizione CSS3 lascia una scia
- 12. CSS3 ritardo di transizione di attributo specifico
- 13. IE <9 Trucchi effetto transizione CSS3?
- 14. CSS3 Transizione per non influenzare altri elementi?
- 15. Aggiungi supporto CSS3 a IE7 + con Javascript
- 16. Transizione CSS3 Facilità dentro e fuori Box Shadow
- 17. La transizione CSS3 sembra modificare z-index durante l'animazione
- 18. La transizione CSS3 (cubic-bezier) non funziona in Firefox
- 19. Transizione CSS3 che incasina i caratteri nel webkit?
- 20. Transizione CSS3 per evidenziare i nuovi elementi creati in JQuery
- 21. Verifica se la transizione CSS3 è in esecuzione
- 22. transizione CSS3 rotazione provocando il mouse intermittente click rilevamento
- 23. rendere la transizione css3 ruotare sempre nella stessa direzione
- 24. Avvia la transizione CSS3 dopo la pagina delle visualizzazioni utente?
- 25. transizione immagine di sfondo pagina su scroll via css3/javascript
- 26. Come rimuovere il ritardo su Css3 Passaggio di transizione che utilizza la transizione di altezza massima
- 27. CSS3 Transition: transizione diversa per * IN * e * OUT * (o di ritorno dallo stato di transizione)
- 28. Transizioni CSS3: la "transizione: tutti" è più lenta di "transizione: x"?
- 29. aggiungi un'altezza minima alle multi colonne di CSS3
- 30. Aggiungi casuale a un ciclo di animazione css3
Una più corretta JSFiddle sarebbe: http://jsfiddle.net/Bq6eK/1/ – TheZ
Grazie, ho provato incollando i js nella finestra corretta, ma non ho ottenuto di lavorare. – Felix