document.body.scrollTop與document.documentElement.scrollTop兼容

document.body.scrollTop與document.documentElement.scrollTop兼容

這兩天在寫一個JS的網頁右鍵菜單,在實現菜單定位的時候發現了這個問題:chrome居然不認識document.documentElement.scrollTop!

看前輩們的文章,紛紛表示如果有文檔聲明(即網頁第一句的docType)的情況下,標準瀏覽器是隻認識documentElement.scrollTop的,但chrome雖然我感覺比firefox還標準,但卻不認識這個,在有文檔聲明時,chrome也只認識document.body.scrollTop.

由於在不同情況下,document.body.scrollTop與document.documentElement.scrollTop都有可能取不到值,那到底網頁的scrollTop值怎麼得到呢?難道又要用javascript進行判斷?

其實不必。因爲document.body.scrollTop與document.documentElement.scrollTop兩者有個特點,就是同時只會有一個值生效。比如document.body.scrollTop能取到值的時候,document.documentElement.scrollTop就會始終爲0;反之亦然。所以,如果要得到網頁的真正的scrollTop值,可以這樣:

var sTop=document.body.scrollTop+document.documentElement.scrollTop;

這兩個值總會有一個恆爲0,所以不用擔心會對真正的scrollTop造成影響。一點小技巧,但很實用。

轉載來自:http://www.jo2.org/archives/176.htm

發佈了73 篇原創文章 · 獲贊 14 · 訪問量 32萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章