今天在開發過程當中須要獲取scrollTop,可是不管是用原生的scrollTop仍是JQ的scrollTop獲取到的值始終爲0。
原來是DOCTYPE的坑。html
<!DOCTYPE html> //獲取scrollTop始終爲0 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> // 可正常獲取scrollTop
因此說,按照W3C標準開發是多麼的重要瀏覽器
各瀏覽器下 scrollTop的差別
IE6/7/8:
對於沒有doctype聲明的頁面裏能夠使用 document.body.scrollTop 來獲取 scrollTop高度 ;
對於有doctype聲明的頁面則能夠使用 document.documentElement.scrollTop;
Safari:
safari 比較特別,有本身獲取scrollTop的函數 : window.pageYOffset ;
Firefox:
火狐等等相對標準些的瀏覽器就省心多了,直接用 document.documentElement.scrollTop ;
二、獲取scrollTop值
完美的獲取scrollTop 賦值短語 :函數
var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
經過這句賦值就能在任何狀況下得到scrollTop 值。code