Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Kilin
    Registrato dal
    Mar 2003
    Messaggi
    453

    getElementById, document.write: alcuni problemi con JS

    ciao a tutti..

    sto facendo un giochino in javascript, ed ho alcuni dubbi/problemi.

    1) Ho un div la cui altezza varia a seconda del contenuto (non setto l'attributo heigth, e lascio che sia il riempimento a determinare l'altezza del div): tale contenuto viene variato dinamicamente durante il gioco (contiene alcune file di nemici, man mano che vengono colpiti li elimino dal div, che quindi puo' rimpicciolirsi) usando DOM. Il div stesso si muove, verticalmente.


    mi serve monitorare il valore della proprietà CSS 'bottom'. Ho fatto così:

    codice:
    document.getElementById('id_del_livello').bottom
    facendo parseInt() sul valore che mi restituisce, ottengo NaN.

    E' strano, perchè se ad esepio sostituisco 'left' oppure 'top' al posto di 'bottom', ottengo il valore corretto. Da cosa puo' dipendere? Se vi servono dettagli aggiuntivi chiedete...

    2) ho un dubbio su document.write: perchè a seconda di dove lo eseguo (script interno/esterno, dentro funzione o fuori) a volte scrive nel documento corrente, nella posizione dov'è inserita l'istruzione, mentre altre volte va a sovrascrivere tutto il codice html della pagina, restituendo una pagina bianca con solo il contenuto di document.write?

    come avrete capito sono nuovo del linguaggio, spero possiate darmi una mano...

    grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    1) questo potrebbe funzionare al massimo cosi'
    document.getElementById('id_del_livello').style.bo ttom
    il punto e' che questo bottom per poter essere letto o va esplicitato nello stile in linea dell' elemento o essere stato settato precedentemente via javascript

    con buona approssimazione dovresti essere in grado di ottenere il valore che cerchi conoscendo il top e lo spazio occupato in verticale dall' elemento
    document.getElementById('id_del_livello').offsetHe ight

    2) document.write richiamati fuori dalla fase di rendering (per capirci: dopo che la pagina ha finito di "montarsi") sovrascrivono il documento
    per scrivere in un elemento fuori da questa fase puoi o creare nodi di testo/elementi ed appenderli ad altri elementi (metodi del DOM) o, sporco e veloce, usare l' innerHTML

    ciao

  3. #3
    Utente di HTML.it L'avatar di Kilin
    Registrato dal
    Mar 2003
    Messaggi
    453
    2) capito, grazie

    1) si, lo style m'era rimasto nella tastiera... :-p Ho capito comunque.. il bottom non posso settarlo, perchè il movimento lo gestisco con top e left... offsetHeight cosa è di preciso? Lo spazio occupato in altezza? comprende eventuali margini esterni? c'è anche un offsetWidth?

    grazie ancora

    edit: e più che altro, è standard? devo fare tutto con html 4.01, css 2.1, javascript 1.3, dom level 2!

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.