Visualizzazione dei risultati da 1 a 7 su 7

Discussione: nascondere div

  1. #1

    nascondere div

    ho 4 div nascosti che al clic su il relativo link si mostrano: onClick="return overlay(this, 'subcontent')"

    qualcuno sa indicarmi come far si che on click oltre a mostrarsi il div nascosto , si nascondano tutti gli altri mostrati precedentemente?
    grazie

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    posta tutto lo script, non ha senso cercare di nascondere gli altri con istruzioni in linea,
    mentre conviene modificare la funzione overlay in modo che nasconda gli altri livelli prima di mostrare l' unico da tenere visibile

  3. #3
    grazie,
    lo script in questione è questo:


    </script>
    <script type="text/javascript">

    function getposOffset(overlay, offsettype){
    var totaloffset=(offsettype=="left")? overlay.offsetLeft : overlay.offsetTop;
    var parentEl=overlay.offsetParent;
    while (parentEl!=null){
    totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
    parentEl=parentEl.offsetParent;
    }
    return totaloffset;
    }

    function overlay(curobj, subobj){
    if (document.getElementById){
    var subobj=document.getElementById(subobj)
    subobj.style.left=getposOffset(curobj, "left")+"px"
    subobj.style.top=getposOffset(curobj, "top")+"px"
    subobj.style.display="block"
    return false
    }
    else
    return true
    }

    function overlayclose(subobj){
    document.getElementById(subobj).style.display="non e"
    }

    </script>

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    puoi risolvere in tanti modi diversi, x es.

    in questo array elenchi gli id dei livelli coinvolti
    var subobjarr=['subcontent','altro'];
    puoi lasciarlo fuori da funzione, prima di tutto quello che hai postato

    la funzione overlay diventa
    codice:
    function overlay(curobj, subobj){
    	if (document.getElementById){
    		for (var k=0;k<subobjarr.length;k++){
    			if(subobjarr[k]==subobj){
    				var subob=document.getElementById(subobj);
    				subob.style.left=getposOffset(curobj, "left")+"px"
    				subob.style.top=getposOffset(curobj, "top")+"px"
    				subob.style.display="block"
    			}
    			else overlayclose(subobjarr[k])
    		}
    		return false
    	}
    	else return true
    }
    ciao

  5. #5
    grazie, ma non funziona o non riesco a farlo funzionare.
    forse il problema è sul collegamento che attiva lo script nel div che ti riporto di seguito,
    grazie per quanto potrete indicarmi

    <script type="text/javascript">
    var subobjarr=['subcontent','subcontent1','subcontent2','subconte nt3',];

    function getposOffset(overlay, offsettype){
    var totaloffset=(offsettype=="left")? overlay.offsetLeft : overlay.offsetTop;
    var parentEl=overlay.offsetParent;
    while (parentEl!=null){
    totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
    parentEl=parentEl.offsetParent;
    }
    return totaloffset;
    }


    function overlay(curobj, subobj){
    if (document.getElementById){
    for (var k=0;k<subobjarr.length;k++){
    if(subobjarr[k]==subobj){
    var subob=document.getElementById(subobj);
    subob.style.left=getposOffset(curobj, "left")+"px"
    subob.style.top=getposOffset(curobj, "top")+"px"
    subob.style.display="block"
    }
    else overlayclose(subobjarr[k])
    }
    return false
    }
    else return true
    }

    </script>


    E POI:


    <a href="#" onClick="return overlay(this,'subcontent')">
    <a href="#" onClick="return overlay(this,'subcontent1')">
    <a href="#" onClick="return overlay(this,'subcontent2')">
    <a href="#" onClick="return overlay(this,'subcontent3')">

    grazie
    g

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    e questa funzione che fine ha fatto?
    codice:
    function overlayclose(subobj){
    document.getElementById(subobj).style.display="none"
    }
    ciao

  7. #7
    ora funziona benissimo!
    grazie
    ciao

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.