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

    Rilevare dinamicamente altezza dei DIV

    Dopo aver cercato possibili soluzioni su questo forum e dopo due sere passate invano a googlare, mi sono deciso ad aprire questo topic.
    Sto cercando di ridimensionare la colonna centrale della home page di un sito, assegnando un'altezza che dipende da quella delle colonne laterali.
    Il mio problema in particolare riguarda la lettura del valore corrente dell'altezza del div: inizialmente usavo la funzione javascript "nome_div.style.height" ma non andava bene perchè restituisce il valore assegnato da un css inline. Non vanno bene nemmeno le funzioni che restituiscono il valore della proprietà css assegnata dal foglio di stile "scaricato dal server", dal momento che l'altezza che devo misurare non è prefissata,dipende dinamicamente dal contenuto del div stesso (infatti nel foglio di stile l'attributo height non è impostato, quindi assume il valore di dafault 'auto').
    Cercando un po' in giro ho così trovato questa funzione:
    Codice PHP:
    valore document.defaultView.getComputedStyle(nome_div"").getPropertyValue("height")); 
    ... che funziona molto bene con firefox.
    Per i browser di casa redmond (per lo meno Internet Explorer 7) c'è questa:
    Codice PHP:
    valore nome_div.currentStyle["height"]; 
    ...che invece, dopo averlo provato con le varie proprietà di altezza alternative (offsetHeight, clientHeight, runtimeHeight), non funziona, non ritorna nulla, o al massimo ritorna NaN. Sembra che IE non riesca a leggere il valore di altezza attualmente assunto dal div perchè va a pescare sempre nel foglio di stile, dove appunto l'altezza non è impostata (anzi, impostata ad 'auto' che convertito in intero da NaN).
    Ringrazio chiunque riesca ad illuminarmi... mi sono intestardito per risolvere sto problema!

    P.S.: spero che questa sia la sezione giustain cui postare... sennò lo sposto in css.
    Grazie.
    In medio stat virtus

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    prova direttamente

    <elemento>.offsetHeight

    dove <elemento> è un riferimento ad un nodo, ad es. tramite document.getElementById('id-elemento')
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Originariamente inviato da fcaldera
    prova direttamente

    <elemento>.offsetHeight

    dove <elemento> è un riferimento ad un nodo, ad es. tramite document.getElementById('id-elemento')
    Hai assolutamente ragione, così funziona! Grazie! ... come spesso accade la soluzione più semplice e pulita è quella veramente funzionante..
    Ma mi chiedo: a cosa servono tutte le funzioni javascript e css properties (che sono estensioni microsoft dello standard) riportate anche dalla MSDN library se poi non fanno quel che dovrebbero?
    In medio stat virtus

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 © 2024 vBulletin Solutions, Inc. All rights reserved.