View Full Version : [Javascript] Attendere rendering pagina
Ciao
Ho una struttura html abbastanza complessa e ho la necessità di impostare la stessa altezza per due div affiancati orizzontalmente (#left e #main)
<script type="text/javascript">
window.addEvent('domready', function() {
var main=document.id('main');
var left=document.id('left');
var main_size=main.getSize();
var left_size=left.getSize();
if(main_size.y>=left_size.y) left.setStyle('min-height', main_size.y);
else main.setStyle('min-height', left_size.y);
});
</script>
Il problema è che l'evento 'domready' non basta perché quando questo script viene eseguito la pagina non è ancora pronta.
Se la pagina viene caricata lentamente noto che ad un certo punto i due div hanno la stessa altezza ma quando viene caricato anche il testo uno dei due si allunga
SerMagnus
13-01-2012, 17:51
il dom ready scatta quando il dom della pagina è pronto, quindi quando tutti gli elementi sono stati creati e renderizzati.
se includi risorse esterne, come font immagini o importi css allora non c'è modo di sapere quando sono pronti se nn caricandoli in js e mettendo un listeer sul loro stato
il dom ready scatta quando il dom della pagina è pronto, quindi quando tutti gli elementi sono stati creati e renderizzati.
se includi risorse esterne, come font immagini o importi css allora non c'è modo di sapere quando sono pronti se nn caricandoli in js e mettendo un listeer sul loro stato
Vorrei sapere la causa della modifica nella struttura.
Premetto che ho specificato la dimensione delle immagini e del testo.
EDIT: smanettando con i css sono riuscito a risolvere il problema impostando 'line-height:1' per tutto il testo
EDIT2
Ho notato un'altro problema: ho impostato come font per il tag body '12px Arial,Helvetica,sans-serif' ma ho delle porzioni di testo che utilizzano un font caricato
se per caso il testo che ho scritto con il font personalizzato, con il font arial occupasse 2 righe e con il font personalizzato una sola, la colonna risulta più lunga (perché contiene una riga di testo in più).
quando il font personalizzato viene caricato questa si accorcia.
Come faccio ad assicurarmi al 100% i due div abbiano la stessa altezza? (non ho idea di cosa sia il listeer)
Se usi jquery
$(document).ready()
Corrisponde al domready mentre
$(windows).ready()
Parte quando anche le immagini sono state caricate.
Non sò se esiste qualcosa di equivalente in js normale.
Se usi jquery
$(document).ready()
Corrisponde al domready mentre
$(windows).ready()
Parte quando anche le immagini sono state caricate.
Non sò se esiste qualcosa di equivalente in js normale.
ciao, uso mootools mi sono dimenticato di specificarlo
il problema è legato al caricamento del font bisogna che lo script parta dopo che il font è stato caricato, come faccio a farlo con mootools?
(purtroppo non sono riuscito a trovarlo in giro e capisco poco l'inglese)
SOLUZIONE
mootools
window.addEvent('load', function() {
//codice
});
oppure, senza librerie caricate o come lo chiami tu js normale :D
window.onload = function () {
//codice
}
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.