Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    112

    tabella espandibile in javascript

    salve, non conosco molto il javascript se non ai livelli di principiante; nella mia pagina ho una tabella di altezza 200px e per problemi di spazio la vorrei ridurre a 100px e con uno script fare in modo che questa sia espandibile a 200px; vorrei insomma fare una cosa del genere

    esempio

    solo che farlo quando si clicca e non farlo con un immagine ma con una tabella

    un altro esempio potrebbe essere questo (bisogna cliccare su "calendario" per vedere l'effetto che vorrei)

    mi date una mano? non vi chiedo di scrivermi il codice da 0, ma magari qualche correzione agli script che vi ho citato o qualche link utile...grazie infinte

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    112
    ma non è proprio possibile? qualche consiglio alternativo tipo script server-side?

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    lato server non mi sembra molto pratico

    lato client è una cosa fattibilissima e semplice (es. calendario),
    è solo un div a cui viene cambiato il display,
    ma tu vorresti nascondere parti di una tabella
    quindi quasi sicuramente righe e usando lo stesso sistema con tag <tr> limiteresti la compatibilità al solo IE

    se invece il contenuto da nascondere è tutto nella stessa cella non ci sono problemi
    fammi sapere

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    112
    avevo pensato a quello che avevi detto tu e credevo di risolverlo associando di default altezza 100px, poi con l'evento onClick si nascondeva la tabella da 100px e si mostrava completamente quella da 200px precedentemente nascosta

    ti posto il codice per capirci meglio

    codice:
    <table width="500" align="center" border="0" cellpadding="0" cellspacing="1" bgcolor="#279A62">
      <tr>
        <td width="500" height="202" valign="middle" bgcolor="#FFFFFF">
          <marquee behavior="scroll" direction="up" height="200" scrolldelay="50" scrollamount="1"
          onmouseover='this.stop()' onmouseout='this.start()'>
            <div>
              testo
            </div>
          </marquee>
        </td>
      </tr>
    </table>

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ok, se sono 2 tabelle diverse non dovrebbero esserci problemi, prova
    codice:
    <script type="text/javascript">
    function riduci_espandi(){
    if(document.getElementById('ridotta').style.display=='block'){
    document.getElementById('ridotta').style.display=='none'
    document.getElementById('espansa').style.display=='block'
    }
    else{
    document.getElementById('ridotta').style.display=='block'
    document.getElementById('espansa').style.display=='none'
    }
    }
    </script>
    
    riduci/espandi
    <table id="ridotta" style="display:block">
    ...
    </table>
    <table id="espansa" style="display:none">
    ...
    </table>
    ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    112
    codice:
    <head>
    <script type="text/javascript">
    function riduci_espandi(){
    if(document.getElementById('ridotta').style.display=='block'){
    document.getElementById('ridotta').style.display=='none'
    document.getElementById('espansa').style.display=='block'
    }
    else{
    document.getElementById('ridotta').style.display=='block'
    document.getElementById('espansa').style.display=='none'
    }
    }
    </script>
    </head>
    <body>
    riduci/espandi
    <table id="ridotta" style="display:block" width="100" height="100" border="1">
    <tr><td></td></tr>
    </table>
    <table id="espansa" style="display:none" width="100" height="200" border="1">
    <tr><td></td></tr>
    </table>
    </body>
    così non mi funziona...forse ho sbagliato io ma non capisco dove...

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    mi ha preso di mano il ctrl c/ctrl v
    codice:
    <head>
    <script type="text/javascript">
    function riduci_espandi(){
    if(document.getElementById('ridotta').style.display=='block'){
    document.getElementById('ridotta').style.display='none'
    document.getElementById('espansa').style.display='block'
    }
    else{
    document.getElementById('ridotta').style.display='block'
    document.getElementById('espansa').style.display='none'
    }
    }
    </script>
    </head>
    <body>
    riduci/espandi
    <table id="ridotta" style="display:block" width="100" height="100" border="1">
    <tr><td></td></tr>
    </table>
    <table id="espansa" style="display:none" width="100" height="200" border="1">
    <tr><td></td></tr>
    </table>
    </body>

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    112
    perfetto funziona!!!grazie mille

    una domanda extra: dentro la cella ho un marquee che quindi viene ridimensionato come la <td>, il problema è che explorer lo gestisce correttamente mentre mozilla no. so che il tag marquee è solo per explorer e che mozilla lo gestisce solo con le versioni più recenti, però non so se commetto qualche errore di sintassi io

    codice:
    ...inizio tabella e celle con <table id="ridotta" style="display:block">
    <marquee behavior="scroll" direction="up" height="100" scrolldelay="50" scrollamount="1"
    onmouseover='this.stop()' onmouseout='this.start()'>
    ...testo...
    </marquee>
    ...chiusura tabella e celle...
    
    ...inizio tabella e celle con <table id="espansa" style="display:none">
    <marquee behavior="scroll" direction="up" height="200" scrolldelay="50" scrollamount="1"
    onmouseover='this.stop()' onmouseout='this.start()'>
    ...testo...
    </marquee>
    ...chiusura tabella e celle...

  9. #9
    bellissimo questo script! propio quello che cercavo....ma dì un pò: si può anche far aprire la tabella verso l'alto?

  10. #10
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    (finchè parliamo di elementi in posizionamento relativo)
    se un elemento prima non occupava spazio e dopo lo occupa è normale che sposti tutto quello che lo segue verso il basso
    se vuoi si può giocare con la visibilità, ma la parte nascosta occupa spazio anche da invisibile
    codice:
    <head>
    <script type="text/javascript">
    function mostra_nascondi(){
    var el=document.getElementById('box').style
    el.visibility=(el.visibility=='visible')?'hidden':'visible'
    }
    </script>
    </head>
    <body>
    <div id="box" style="visibility:hidden">
    elemento inizialmente nascosto,
    
    occupa cmq spazio anche da invisibile
    
    perchè è nascosto tramite visibility
    
    
    ...
    </div>
    mostra/nascondi
    </body>
    soluzioni alternative sono parecchio + complesse
    (specie se da applicare a layout tabellari...)

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.