Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    come si recupera width e height da un div?

    Se imposto la larghezza di un elemento con (per esempio).
    codice:
    document.getElementById("div1").style.width = document.getElementById("tb1W").value;
    come potrei recuperare dopo la larghezza del div (in px)?

    se faccio alert(document.getElementById("div1").style.width) mi restituisce per esempio, 150px.
    Pietro

  2. #2
    Sinceramente non ho capito il problema...quello che recuperi è esatto, dato che i valori di larghezza e altezza dell'oggetto style sono stringhe (sono sempre seguite dall'unità di misura se noti). Se quello che ti serve è il recupero del solo valore numerico, basta che "elimini" le due lettere dell'unità di misura:

    var wdt_px = document.getElementById("div1").style.width;
    var wdt = wdt_px.substring(0,wdt_px.length - 2);

    Questo è il sistema più semplice, che non ti converte il valore in un numero, ma se poi devi fare dei calcoli, ci pensa JavaScript a farti la conversione implicita. Oppure puoi usare tu stesso parseInt(wdt).

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ache tu hai ragione.

    Io, nella fretta, usavo offsetWidth, ma mi sballava il dato vero di alcuni pixel.

    Ciao
    Pietro

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    io uso solo offsetWidth, purtroppo mi sembra venga restituito il width solo quando sia stato precedentemente assegnato via css
    e se non sbaglio solo in linea
    x aggirare queste limitazioni si puo' provare ad usare il getComputedStyle
    http://www.mozilla.org/docs/dom/domref/examples.html
    e la proprieta' IE proprietaria currentStyle
    ciao

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da Xinod
    io uso solo offsetWidth, purtroppo mi sembra venga restituito il width solo quando sia stato precedentemente assegnato via css
    e se non sbaglio solo in linea
    x aggirare queste limitazioni si puo' provare ad usare il getComputedStyle
    http://www.mozilla.org/docs/dom/domref/examples.html
    e la proprieta' IE proprietaria currentStyle
    ciao
    Ringrazio della risposta.
    Pietro

  6. #6
    Originariamente inviato da Xinod
    io uso solo offsetWidth, purtroppo mi sembra venga restituito il width solo quando sia stato precedentemente assegnato via css
    e se non sbaglio solo in linea
    x aggirare queste limitazioni si puo' provare ad usare il getComputedStyle
    http://www.mozilla.org/docs/dom/domref/examples.html
    e la proprieta' IE proprietaria currentStyle
    ciao
    favolosa come soluzione

    Codice PHP:
    function cascadedstyle(elcsspropertycsspropertyNS){
    if (
    el.currentStyle//if IE5+
    return el.currentStyle[cssproperty]
    else if (
    window.getComputedStyle){ //if NS6+
    var elstyle=window.getComputedStyle(el"")
    return 
    elstyle.getPropertyValue(csspropertyNS)
    }

    però è sorprendente come ci siano certe mancanze in questi linguaggi ...sapere quale sia la reale dimensione di un oggetto non mi sembra una cosa così strana
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

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.