Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    far comparire e scomparire div dinamicamente

    salve,
    possiedo una pagina realizzata in questo modo


    contenuto1
    <div>contenuto</div>
    contenuto2
    <div>contenuto</div>
    contenuto3
    <div>contenuto</div>
    contenuto4
    <div>contenuto</div>

    io vorrei trasformarlo in questo modo:
    contenuto1
    contenuto2
    contenuto3
    contenuto4
    e cliccando ogni voce compare dinamicamente il contenuto relativo, ora sono riuscito a far scomparire il div, però lo spazio relativo al suo contenuto rimane...come posso eliminare questo problema??

    grazie

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649

    Re: far comparire e scomparire div dinamicamente

    Originariamente inviato da pippuzzo80
    ora sono riuscito a far scomparire il div, però lo spazio relativo al suo contenuto rimane...come posso eliminare questo problema??
    se resta lo spazio stai cambiando la visibilita', per non lasciare spazio dovresti lavorare solo sul display
    ciao

  3. #3
    ok, grazie mille!!

    solo una cosa:

    ho utilizzato display:none e display:inline ..... ho solo qualche dubbio su inline, è corretto l'utilizzo in questo caso oppure si deve utilizzare un'altra proprietà??

    grazie

  4. #4
    scusa ma ho appena provato, su IE tutto ok, il blocco compare e scompare correttamente rilasciando lo spazio ad esso associato, su FF invece si verifica un problema, infatti quando clicco per far chiudere il blocco, il blocco scompare, ma il suo spazio rimane visibile?? come è possibile?? ho letto che la proprietà inline dovrebbe essere introdotta su FF dalla versione 1.0...

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    guarda se va bene :master:
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Pagina senza titolo</title>
    
        <script language="javascript" type="text/javascript">
    // <!CDATA[
    function visualizza(v)
    {
        var ds = v.parentNode.getElementsByTagName("div");
        if(!ds || ds.length == 0) return;
        var d = ds[0];
        d.style.display = (d.style.display == "")? "none": "";
    }
    
    // ]]>
        </script>
    
    </head>
    <body>
        <div>
            Contenuto1
            <div style="display:none;">testo1</div>
        </div>
        <div>
            Contenuto2
            <div style="display:none;">testo2</div>
        </div>
        <div>
            Contenuto3
            <div style="display:none;">testo3</div>
        </div>
        <div>
            Contenuto4
            <div style="display:none;">testo4</div>
        </div>
        
    </body>
    </html>
    Pietro

  6. #6
    ok, togliendo inline e lasciando vuoto sembra funzionare correttamente...


    mi potreste togliere un dubbio ??

    cosa succede se l'utente non possiede javascript?? non riuscirà a cliccare sulle voci ed aprire i relativi div... suppongo...

    a tal proposito mi è venuta un'idea...

    inizialmente setto tutti i div con la proprieta display=' ' quindi visibili, alla fine della pagina (quando tutto è caricato), richiamo una funzione nasconditutto() che non fa altro che settare le proprietà dei div in display:none; in questo modo se l'utente non ha attivato javascript allora la funzione nasconditutto non funzionerà però i div resteranno visibili....

    voi cosa ne pensate??

    grazie comunque dell'aiuto!!!

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    intanto l' elemento div e' nativamente di tipo block, quindi e' corretto e fedele agli standard settarne il display a "block" per renderlo visibile

    il tuo ragionamento e' corretto: questo e' considerare css e javascript come progressive enhancement, sorta di stratificazioni funzionali sul nudo xhtml

    semplicemente e' inutile settare inizialmente il display
    non specificandolo sara' block (visibile) e non avrai sporcato il markup con css in linea

    assegnando a fine caricamento riferimentoElemento.style.display='none' ottieni identico risultato,
    comunque evitando che l' elemento scompaia in caso di mancato supporto a javascript

    ciao

  8. #8
    ok adesso pulisco il codice....

    grazie per le altre informazioni che mi hai fornito, adesso è tutto più chiaro...



    ps. non si finisce mai di imparare...

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.