Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Visibilità layers

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    167

    Visibilità layers

    Ciao a tutti,
    sto realizzando un'applicazione in php e mi servono alcuen funzioni javascript per visualizzare e nascondere dei layers. Prima di scrivere qua chiedendo aiuto ho fatto tutte le prove immaginabili ed ho letto la guida in merito che c'è sul sito. Non sono riuscito a far apparire o nascondere un layer mediante la pressione di un pulsante, è da due ore che sto cercando di riuscirci ma niente. Ad ogni modo i miei numerosi ed infruttuosi tentativi hanno partorito questo codice qua, basato soprattutto sulla funzione che c'è nella guida del sito.
    codice:
    <html>
    <head></head>
    <script language="JavaScript1.2">
    
    <!-- modified from "Toggle Layer Visibility" by Eddie Traversa @ nirvana.media3.net
    
    function toggleVisibility(id, mode) {
    	var NNtype = (mode == "show") ? mode : "hidden";
    	var IEtype = (mode == "show") ? "visible" : "hidden";
    	var WC3type = (mode == "show") ? "visible" : "hidden";
    	if (document.getElementById) {
    		eval("document.getElementById(id).style.visibility = \"" + WC3type + "\"");
    	} else {
    		if (document.layers) {
    			document.layers[id].visibility = NNtype;
    		} else {
    			if (document.all) {
    				eval("document.all." + id + ".style.visibility = \"" + IEtype + "\"");
    			}
    		}
    	}
    }
    //-->
    <body>
    <div id="menu">Uno due tre</div>
    <form>
    <input type="button" value="Mostra" onClick="toggleVisibility('menu','show');"><input type="button" value="Nascondi" onClick="toggleVisibility('menu','hidden');">
    </form>
    </body>
    </html>
    Le prove le faccio con Firefox: se apro l'esempio della guida (quello dove ci sono i quattro layer) mi funziona tutto correttamente, ma non la "personalizzazione" che ho provato a fare io. Non capisco dove stia il problema, dal momento che la funzione principale è identica a quella dell'esempio e il modo di chiamare le funzioni javascript è lo stesso che ho usato con successo in altre occasioni.
    Grazie a chiunque voglia aiutarmi

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    o fai cosi'
    codice:
    eval("document.getElementById('"+id+"').style.visibility = \"" + WC3type + "\"");
    o, molto meglio, direttamente cosi'
    codice:
    document.getElementById(id).style.visibility = WC3type;
    se non funziona dopo la modifica ci risentiamo

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    167
    Ciao,
    grazie per la risposta prima di tutto!
    Ho provato a fare solo la modifica che mi hai indicato tu, ma non mi è cambiato nulla. Ho provato anche a togliere eval dall'ultimo if, ma senza successo.
    Ho provato anche una soluzione di questo tipo:
    codice:
    <html>
    <head></head>
    <script language="JavaScript1.2">
    
    <!-- modified from "Toggle Layer Visibility" by Eddie Traversa @ nirvana.media3.net
    
    function toggleVisibility(id, mode) {
         if(mode=='hidden')
            document.getElementById(id).style.visibility = 'hidden';
         else
            document.getElementById(id).style.visibility = 'visible';
            
    }
    //-->
    <body>
    <div id="menu">Uno due tre</div>
    <form>
    <input type="button" value="Mostra" onClick="toggleVisibility('menu','show');"><input type="button" value="Nascondi" onClick="toggleVisibility('menu','hidden');">
    </form>
    </body>
    </html>
    Ma niente.

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    <div id="menu" style="visibility:visible">Uno due tre</div>

    cambia id con altra parola
    codice:
    function toggleVisibility(idx, mode) {
         if(mode=='hidden')
            document.getElementById(idx).style.visibility = 'hidden';
         else
            document.getElementById(idx).style.visibility = 'visible';
            
    }
    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    167
    Ciao,
    funziona finalmente... grazie per l'aiuto!
    Ho provato sia su IE che su Firefox e funziona su entrambi i browser e quindi, presumo, su tutti gli altri.
    A che serve quel mattone di funzione che c'è nell'esempio del sito se si può fare lo stesso con quattro linee di codice? (Ad ogni modo è proprio lì che è usato id come identificatore, per questo non pensavo fosse dovuto a un problema di omonimia!).

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.