Salve, ho aperto la stessa discussione nella sezione HTML perché vorrei avere una soluzione in HTML ma al momento mi preme portarmi a casa un risultato qualunque sia il mezzo, spero che possiate aiutarmi.
Ho bisogno di avere due bottoni, o anche lo stesso, al cui click cambino gli stili di una div. Ho sostanzialmente una div che si allarga e si riduce con un semplice comando transform:scale.
Vi riporto un esempio con il metodo :hover.
codice HTML:<!doctype html><html> <head> <meta charset="utf-8"> <title>Documento senza titolo</title> <style type="text/css"> .container {position: absolute; width:90%; height:100%; left:5%; min-width:1000px; border: 1px solid #000} .content {position:relative; width:60%; height:90%; top:1%; left:35%; border: 1px solid #000} .nav {position:absolute; width:20%; height:90%; min-height:700px; top:1%; left:1%; padding:1%; border: 1px solid #000} .bottone {position:relative; width:90%; height:10%; border:1px solid red;text-align:center;} .nav:hover ~ .content {transform-origin:right top; -webkit-transform-origin:right top;transform:scale(0.5);-webkit-transform:scale(0.5); transition:all 2s ease-in; -webkit-transition:all 2s ease-in;} </style> </head> <body> <div class="container"> <div class="nav"> </div> <div class="content"></div> </div> </body> </html>
Non mi riesce di farlo al click. Ho trovato una soluzione che prevedeva di usare @keyframe per definire l'animazione, metterla in pausa e dirle di interrompersi all'ultimo frame, poi al click cambiare lo stato in running. Così facendo però una volta che la finestra si è ridotta non so come fare a dirgli di ripartire con l'animazione nel senso inverso.
La cosa più semplice per me, anche per eventuali altre applicazioni, è avere un comando che mi dica "al click vai a leggere quello stile" un po' come già avviene con il mouse event :hover.
Grazie mille.