questo basta e mi risulta funzionare su tutti i browser moderni, indipendentemente dal doctypecodice:var oldY=0; function getY(){ return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop; } function adjustY(){ var el=document.getElementById('menutendina'); var y=getY(); var newY=oldY+Math.round((y-oldY)/10); el.style.top=newY+"px"; oldY=newY; setTimeout("adjustY()",50); } window.onload=adjustY;
se nel documento hai altre funzioni richiamate onload (window.onload=funzione o <body onload="funzione()">) rimuovi gli altri gestori evento e includili tutti in un unico gestore, sostituendo window.onload=adjustY; con window.onload=function(){funzione();adjustY();}
le differenze in presenza di doctype sono particolarmente sentite con IE (firefox e simili vogliono solo che le misure css settate via js siano stringhe e l' unita' di misura venga esplicitata, +"px") che riassegna proprieta' del body a documentElement,
puoi approfondire qui
http://www.quirksmode.org/viewport/compatibility.html
ciao