Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    ancora su hide/show div

    Ciao a tutti, perdonate l'ennesimo post sull'argomento ma anche con i risultati della ricerca (e le relative modifiche allo script) non sono venuto a capo di molto...
    Il mio problema è mostrare e nascondere div. Dal momento che ne ho più di uno avrei bisogno che cliccando in qualsiasi altro punto della pagina (così come anche su un altro collegamento per mostrare un div) un eventuale div aperto scompaia. Avevo pensato ad una cosa del genere:
    codice:
    function showBar(divbar) {
    	menu =$('bar' + divbar);
    	menu.style.visibility = 'visible';
    	document.onclick = function() {
    		hideBar(menu);
    	}
    }
    
    function hideBar(divbar) {
    	divbar.style.visibility = 'hidden';
    		document.onclick = false;
    }
    Poi nella pagina:
    collegamento:
    codice:
    utente
    e il div (vi posto anche il css associato, non si sa mai):
    codice:
    CSS:
    .submenuprofile
    {
    position:absolute;
    top:133px;
    border: none;
    height: 23px;
    width: 800px;
    margin: 0px auto;
    background: #000000 url('images/menu_bar_flip.png') repeat-x top left;
    text-align:center;
    visibility: hidden;
    z-index:20;
    }
    
    HTML:
    <div id="barprofile" class="submenuprofile">content</div>
    Grazie mille in anticipo e scusate la lunghezza del post!
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  2. #2
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  3. #3
    scusate l'insistenza ma ci sto sbattendo la testa da giorni...
    <-- questa emoticon non è neanche troppo figurativa...
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  4. #4
    Ciao,
    prova questa:
    codice:
    <script language="javascript" type="text/javascript">
    <!--
    function hideShow(divID){
    document.getElementById(divID).style.display=(document.getElementById(divID).style.display=='none')?'block':'none';
    }
    </script>
    Se ti serve che un handler la associ a più layer, devi replicare la funzione con il relativo argomento nell'handler:

    codice:
    mostra/nascondi
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  5. #5
    grazie emanueledg!

    Però resta un problema.. Io avevo scritto quella funzione perchè avendo più div avrei la necessità, nell'aprire un qualsiasi div, di nascondere quello eventualmente già aperto.. un po' come succede per i menu di un qualsiasi programma.. Se apro il menu file e mi sposto su modifica il menu file si chiude, e se clicco su un qualsiasi altro punto della pagina si chiude quello aperto...

    Grazie per il tuo aiuto comunque!
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  6. #6
    uppino...

    Lo so che è una scemenza, ma è assurdo che non riesca a cambiare le proprietà di un tag!! O.O
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  7. #7
    Prova a postare una parte più esplicativa dello script (una pagina html con una piccola preview dell'applicazione delle funzioni).
    Io credo ci sia qualcosa da implementare nell'evento onMouseOut.
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  8. #8
    codice:
    <style>
    .hidden {
    	visibility: hidden;
    }
    </style>
    <script>
    function HideOrShow(id){
    	var	re = /(^|\s)(hidden)(\s|$)/,
    		id = document.getElementById(id);
    	if(re.test(id.className))
    		id.className = id.className.replace(re, "$1");
    	else
    		id.className += " hidden";
    };
    function ShowMenu(div){
    	div = "bar".concat(div);
    	switch(this.iraiscoming223){
    		case null:
    		case undefined:
    			HideOrShow(iraiscoming223 = div);
    			break;
    		case div:
    			HideOrShow(div);
    			iraiscoming223 = null;
    			break;
    		default:
    			HideOrShow(iraiscoming223);
    			HideOrShow(iraiscoming223 = div);
    			break;
    	};
    	return false;
    };
    </script>
    <div>
    utente
    <div class="hidden" id="barutente">sono il menu utente</div>
    </div>
    <div>
    profilo
    <div class="hidden" id="barprofilo">sono il menu profilo</div>
    </div>
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9
    wow provo al volo il codice di andr3a e vi faccio sapere! Grazie!!!

    @emanueledg: a parte qualche accortezza grafica e un form quello è il "corpo" della pagina... Quello che posso aggiungere sono i metatag.. capisci perchè è svilente quando anche solo 20 righe di codice non funzionano?? eheh
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  10. #10
    Si funziona!!! Nel senso funziona lo script così come lo ha postato andr3a, se lo adatto alle mie esigenze invece si impappa.. Ma ora almeno so che non sono errori di sintassi ma di stanchezza... ho avuto una giornatina pesante!!
    Grazie mille a tutti e due! Avete fatto una persona felice! (ci vuol poco, eh???) eheh
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

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.