Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    44

    Gruppo di div a scomparsa

    Ciao a tutti!

    Devo generare uno script che mi permetta di visualizzare dei div e allo stesso tempo nasconderne altri. Ho l'idea però non so come attuarla di preciso...

    Lo stile dei 3 div è pressochè identico:

    codice:
    #_01 {   [...];
                   visibility: hidden;
              }
    
    #_02 {   [...];
                   visibility: hidden;
              }
    
    #_03 {   [...];
                   visibility: hidden;
              }
    I 3 div:

    codice:
    <div id="_01">
    [...]
    </div>
    <div id="_02">
    [...]
    </div>
    <div id="_03">
    [...]
    </div>
    I link che ne modificano la visibilità:

    codice:
    <a name=_01" onclick="funzione(MI SERVE UNA MANO A SCRIVERLA)">
    <a name=_02" onclick="funzione(MI SERVE UNA MANO A SCRIVERLA)">
    <a name=_03" onclick="funzione(MI SERVE UNA MANO A SCRIVERLA)">
    Non so bene come scrivere la funzione... Pensavo ad una cosa tipo questa, però in questo modo specifico solo un div. Giusto??

    Ecco la funzione:

    codice:
    function prova(iddiv,aname)
    { if (iddiv == aname)
    document.getElementById(iddiv).style.visibility = visible;
    else
    document.getElementById(iddiv).style.visibility = hidden;
    }
    Se non sono stato chiaro posso provare a spiegare meglio... Basta chiedere

    Grazie!
    Massimo

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    http://javascript.html.it/demo/javas...40/esempio.htm

    per aprirne uno alla volta
    codice:
    <script type="text/javascript">
    	//Initialize 2nd demo:
    	ddaccordion.init({
    	headerclass: "technology", //Shared CSS class name of headers group
    	contentclass: "thelanguage", //Shared CSS class name of contents group
    	collapseprev: false, //Collapse previous content (so only one open at any time)? true/false  
    	defaultexpanded: [], //index of content(s) open by default [index1, index2, etc]. [] denotes no content.
    	animatedefault: false, //Should contents open by default be animated into view?
    	persiststate: false, //persist state of opened contents within browser session?
    	toggleclass: ["closedlanguage", "openlanguage"], //Two CSS classes to be applied to the header when it's collapsed and expanded, respectively ["class1", "class2"]
    	togglehtml: ["prefix", " ", " "], //Additional HTML added to the header when it's collapsed and expanded, respectively  ["position", "html1", "html2"] (see docs)
    	animatespeed: "fast" //speed of animation: "fast", "normal", or "slow"
    	})
    infine, ricorda che gli attributi name ed id - oltre a dover essere racchiusi da apici - richiedono una lettera come primo carattere: _01, _02... non sono corretti.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    44
    Preferirei mantenere la funzione con una struttura più simile a quella che pensavo io, anche perchè la trovo più comprensibile... Inoltre per quanto riguarda id, classi, name e attributi simili possono iniziare sia con una lettera che non _... almeno, nelle vostre guide c'è scritto così e l'ho sempre fatto senza avere problemi...
    Massimo

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ho buttato giu' 4 righe proprio qualche ora fa in risposta a questa discussione
    http://forum.html.it/forum/showthrea...7#post11449137
    dacci un' occhiata
    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    44
    Alla fine io ho risolto così:

    codice:
    function vis(divmenu1,visibilita1,divmenu2,visibilita2,divmenu3,visibilita3)
    
    {
    
    document.getElementById(divmenu1).style.visibility=visibilita1;
    
    document.getElementById(divmenu2).style.visibility=visibilita2;
    document.getElementById(divmenu3).style.visibility=visibilita3;
    }
    definendo poi il link in questo modo:

    codice:
    Testo
    Massimo

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    peccato che questa soluzione non sia facilmente scalabile

    se devi aggiungere altri 50 blocchi devi riscrivere la funzione e in più modificare le chiamate già scritte (e ciò facilita la presenza di bug).

    Considera di usare una delle due soluzioni proposte sopra, magari prova a capirne la logica.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

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.