ciao a tutti
sto usando le proprietà per rilevare lo scrolling della pagina al fine di mantenere un div in posizione costante. questo è il mio codice:
funziona, ma andrebbe migliorato. il problema è che i browser che usano la proprietà window.pageYOffset non forniscono un valore finchè lo scrolling non è completato. risultato, il mio div continua a scrollare oltre il dovuto, salvo riapparire nella posizione imposta dallo script quando lo scrolling si ferma. non è bello da vedere.codice:$(document).ready(function(){ var obpan = document.getElementById('pwrapper'); scrollp(obpan); window.onscroll = function(){ scrollp(obpan); }; }); function scrollp(sdiv) { var sy = window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop; if(sy>=150) { sdiv.style.position = "fixed"; sdiv.style.top = "0px"; } else { sdiv.style.position = "absolute"; sdiv.style.top = "150px"; } }
nessun problema con IE8, che usa la proprietà document.documentElement.scrollTop ne con safari 4 che può usare correttamente sia window.pageYOffset che document.body.scrollTop
opera e FF invece supportano solo window.pageYOffset, e pure malamente.
c'è qualche stratagemma per far lavorare bene anche questi browser? ho provato con un setInterval() ma non ho risolto

Rispondi quotando