這兩天在寫一個JS的網頁右鍵菜單,在實現菜單定位的時候發現了這個問題:chrome竟然不認識document.documentElement.scrollTop!javascript
看前輩們的文章,紛紛表示若是有文檔聲明(即網頁第一句的docType)的狀況下,標準瀏覽器是隻認識documentElement.scrollTop的,但chrome雖然我感受比firefox還標準,但卻不認識這個,在有文檔聲明時,chrome也只認識document.body.scrollTop.java
因爲在不一樣狀況下,document.body.scrollTop與document.documentElement.scrollTop都有可能取不到值,那到底網頁的scrollTop值怎麼獲得呢?難道又要用javascript進行判斷?chrome
其實沒必要。由於document.body.scrollTop與document.documentElement.scrollTop二者有個特色,就是同時只會有一個值生效。好比document.body.scrollTop能取到值的時候,document.documentElement.scrollTop就會始終爲0;反之亦然。因此,若是要獲得網頁的真正的scrollTop值,能夠這樣:瀏覽器
var sTop=document.body.scrollTop+document.documentElement.scrollTop;firefox
這兩個值總會有一個恆爲0,因此不用擔憂會對真正的scrollTop形成影響。一點小技巧,但很實用。ip