Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [jquery]aggiornamento altezza div

    Ciao a tutti,

    spero sia la sezione giusta per un quesito jquery.

    Ho un layout composto da <div>, gestiti con css:
    header, 3 colonne ("colsx", "main" e "coldx"), footer.
    <main> contiene <content> nel quale inserisco il contenuto delle varie pagine.

    <colsx> e <coldx> al caricamento della pagina adattano la propria altezza in base all'altezza di <main>.
    codice:
    $(function(){
    $("#colsx").css('height',$("#main").css('height'));
    $("#coldx").css('height',$("#main").css('height'));
    }
    Nella colonna centrale ho creato un giochino di testi a comparsa: clicchi su "leggi la risposta" e viene mostrato un <div> nascosto (#uno_aperto). Clicchi su "chiudi" e il <div> scompare.

    codice:
    $("#uno_apri").toggle(
    function (){
    $("#uno_apri").text("(chiudi)");
    $("#uno_aperto").show("fast");
    },					
    function (){
    $("#uno_apri").text("(leggi la risposta)");
    $("#uno_aperto").hide("fast");
    }
    Funziona ma...problema: la comparsa di <#uno_aperto> fa allungare <content> e di conseguenza <main>, ma le colonne non si adattano all'altezza della pagina.

    Ho provato questa variante (per la sola colonna sx): intercettare l'altezza di <content>, infilarla in una variabile e gestire l'altezza di <colsx> in base a questa variabile.
    Funziona...ma solo al SECONDO click!!!
    Cioè: clicco su "leggi la risposta", appare <#uno_aperto>, <content> e <main> si allungano, ma colonna ferma.
    Clicco su "chiudi", mi esce l'alert che ho inserito, <#uno_aperto> non scompare ma la colonna si adatta correttamente.
    codice:
    	
    $("#uno_apri").toggle(
    function (){
    $("#uno_apri").text("(chiudi)");
    $("#uno_aperto").show("fast");
    },
    function (){
    var test = parseInt($("#content").css('height').toString());
    alert (test);
    $("#colsx").css('height',(test));
    },
    function (){
    $("#uno_apri").text("(leggi la risposta)");
    $("#due_aperto").hide("fast");
    },
    function (){
    var test = parseInt($("#content").css('height').toString());
    alert (test);
    $("#colsx").css('height',(test));
    }
    )
    Credo sia un problema di posizione delle funzioni ma non ne vengo a capo da alcune ore.

    Qualcuno saprebbe aiutarmi?

    Se necessario posso mandare le pagine via mail.

    Grazie a tutti, come sempre.
    @lex!

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Dovrebbe bastare richiamare questo codice:

    codice:
    $("#colsx").css('height',$("#main").css('height'));
    $("#coldx").css('height',$("#main").css('height'));
    ad ogni click del "giochino" apri/chiudi.


  3. #3
    Ciao Gianiaz,

    ho provato così
    codice:
    <a href="#" id="uno_apri" onclick="$('#colsx').css('height',$('#main').css('height'));
    $('#coldx').css('height',$('#main').css('height'));">
    ma non funziona correttamente.

    Al primo click in effetti la colonna si allunga ma non fino alla fine di <content>.
    Al secondo click la colonna si allunga ulteriormente invece di accorciarsi!!

    @lex!

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.