Visualizzazione dei risultati da 1 a 10 su 10

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Non so voi, ma quando si tratta di animazioni e grafica io non scomoderei JavaScript…

    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Esempio</title>
    <style type="text/css">
        .switchbox {
            position: relative;
            margin: 5px;
            padding: 10px;
            width: 500px;
            height: 200px;
            background: Tan;
        }
    
        .switchbox .element1,
        .switchbox .element2 {
            position: absolute;
            bottom: 10px;
            left: 10px;
            right: 10px;
            overflow: auto;
        }
    
        .switchbox .element1,
        .switchbox:hover .element2 {
            height: 180px;
        }
    
        .switchbox .element1{
            background: Orange;
        }
    
        .switchbox .element2{
            background: Beige;
            height: 0px;
            overflow: hidden;
            transition: height .5s;
        }
    </style>
    </head>
    
    <body>
    
    <div class="switchbox"> BOX 1
        <div class="element1">This one is the first element</div>
        <div class="element2">This one is the second element</div>
    </div>
    
    <div class="switchbox"> BOX 2
        <div class="element1">This one is the first element</div>
        <div class="element2">This one is the second element</div>
    </div>
            
    <div class="switchbox"> BOX N
        <div class="element1">This one is the first element</div>
        <div class="element2">This one is the second element</div>
    </div>
    
    </body>
    </html>

    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

  2. #2
    Ciao carlomarx, grazie per la risposta, mi piace molto la tua soluzione (grazie mille anche a KillerWorm, in effetti la mia domanda era mirata al Javascript e lui mi ha dato un'ottima risposta).
    Vorrei chiederti un'ultima cosa: siccome all'hover element1 dovrebbe scomparire mentre dovrebbe comparire element2 ho modificato il css della tua classe relativa all'hover dividendo i due elementi. Ecco qui quello che fa al caso mio:

    .switchbox:hover .element2 {
    height: 180px;
    }
    .switchbox:hover .element1 {
    height: 0px;
    }

    Va tutto alla grande, se non fosse che...non viene interpretato correttamente da Internet Explorer!
    Succede che quando passo con il mouse sopra a switchbox si nasconde correttamente element1 e compare correttamente element2, ma il problema è che quest'ultimo non resta fisso, continua a lampeggiare, come se IE "non fosse sicuro che deve farlo visualizzare".
    Sai se qualche stile di questi non gli piace? Secondo me è l'height:0, ma anche se fosse non saprei come rimpiazzarlo (se non con display:none e overflow:hidden, prove non andate a buon fine)
    Ti ringrazio

  3. #3
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Figurati!
    Il punto è che esistono mille possibili soluzioni e io non posso sapere cosa preferisci di preciso! Da' uno sguardo qua:

    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Esempio</title>
    <style type="text/css">
        .switchbox {
            position: relative;
            margin: 5px;
            padding: 10px;
            width: 500px;
            height: 200px;
            background: Tan;
        }
    
        .switchbox .element1,
        .switchbox .element2 {
            position: absolute;
            bottom: 10px;
            left: 10px;
            right: 10px;
            overflow: auto;
        }
    
        .switchbox .element1,
        .switchbox:hover .element2 {
            height: 180px;
        }
    
        .switchbox .element2 {
            height: 0px;
            overflow: hidden;
        }
    
        .switchbox:hover .element1 {
            opacity: 0;
        }
    
        .switchbox .element1{
            background: Orange;
            opacity: 1;
            transition: opacity .2s linear;
        }
    
        .switchbox .element2{
            background: Beige;
            transition: height .5s;
        }
    
    </style>
    </head>
    
    <body>
    
    <div class="switchbox"> BOX 1
        <div class="element1">This one is the first element</div>
        <div class="element2">This one is the second element</div>
    </div>
    
    <div class="switchbox"> BOX 2
        <div class="element1">This one is the first element</div>
        <div class="element2">This one is the second element</div>
    </div>
            
    <div class="switchbox"> BOX N
        <div class="element1">This one is the first element</div>
        <div class="element2">This one is the second element</div>
    </div>
    
    </body>
    </html>

    Ma magari non è quello che vuoi… Io non lo posso sapere!
    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.