Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di tziggie
    Registrato dal
    Mar 2007
    Messaggi
    105

    richiamare div nascosti senza che si sovrappongano

    Salve a tutti.
    Sto costruendo una pagina con div a comparsa che vengono richiamati da una funzione javascript.

    In questi div vorrei fare apparire il contenuto del sito, quindi in effetti ogni div rappresenta una diversa pagina e viene richiamato con 'onclick'. L'idea di base è creare una funzione che renda visibili i div nascosti.
    La pagina resta sempre la stessa e div che vengono di volta in volta resi visibili rappresentano le diverse pagine, dando l'effetto di una pagina con frame.

    Tra le varie opzioni che ho provato a utilizzare ho trovato online questa qui:
    codice:
    <script type="text/Javascript">
    <!--
    function MM_findObj(n, d) { //v4.01
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
      if(!x && d.getElementById) x=d.getElementById(n); return x;
    }
    function MM_showHideLayers() { //v6.0
      var i,p,v,obj,args=MM_showHideLayers.arguments;
      for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
        if (obj.style) { obj=obj.style; v=(v=='show')?'visible': (v=='hide')?'hidden':v; }
        obj.visibility=v; }
    }
    La funzione MM_showHideLayers() viene richiamata con 'onclick' per ogni link.

    Per ogni link indico i div che devono essere resi visibili con 'show' e al tempo stesso quelli che devo nascondere con 'hide'. Questo perché se apro il div che contiene la prima pagina devo essere certo che non si sovrapponga con il contenuto degli altri div, che devono restare nascosti.

    Così facendo devo indicare per ogni link lo stato di tutti i div. Per una questione di semplicità vorrei poter indicare solo i div da visualizzare, lasciando sottinteso che tutti gli altri che non sono indicati devono restare nascosti.

    Ho provato a seguire un'altra strada e a scrivere una funzione daccapo a partire da:
    codice:
    function popup () {
    document.getElementById('prova1').style.visibility="visible";
    }
    a partire da una condizione in cui tutti i div sono nascosti. Ma così facendo, legando la funzione a 'onclick', chiaramente visualizzo solo il div#prova1.
    Come posso fare per richiamare i differenti div# nascosti, uno alla volta e con la stessa funzione?
    Spero di essere stato chiaro. Grazie a tutti.

  2. #2
    Utente di HTML.it L'avatar di tziggie
    Registrato dal
    Mar 2007
    Messaggi
    105
    Aggiungo che io avevo pensato a una funzione semplice di questo tipo.

    Ho div#prova1 e div#prova2 definiti da visiblity:hidden
    se la funzione richiama div#prova1 allora #prova1.visibility:visible, altrimenti (se richiama un altro div, prova#2 in tal caso) #prova1.visibility:hidden.

    Non avendo mai scritto in javascript non riesco a tradurre queste due righe. Tra il pensare e il fare... :master:

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.