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:
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"; }
}
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.
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