JS判斷頁面是否出現滾動條


轉自:http://www.cnblogs.com/yazdao/archive/2010/12/06/1897742.html

今天無聊,幫一個網友解決一個很無聊的問題,用JS判斷頁面是否出現滾動條,在網上看了一些代碼,經過驗證並不起作用,下面是在網上搜索到的代碼:

當可視區域小於頁面的實際高度時,判定為出現滾動條,即:

if (document.documentElement.clientHeight < document.documentElement.offsetHeight) scroll = true;

要使用 document.documentElement ,必須在頁面頭部加入聲明:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

其實,這段代碼是不起作用的,因為他沒考慮到一個問題,就是瀏覽器的邊框,當我們在獲取頁面的offsetHeight高度時是包括了瀏覽器的邊框的,瀏覽器的邊框是2個像素,所以這時無論在任何情況下clientHeight 始終是小於offsetHeight的,這就使得即使沒有滾動條它也為true,因此我們要修正這個錯誤,代碼應該這樣改,在offsetHeight上減去4個像素,即:

if (document.documentElement.clientHeight < document.documentElement.offsetHeight-4){

//執行相關腳本。

}

還有,這里要搞清楚,上面這代碼是判斷橫向滾動條的,我們一般要判斷的是縱向滾動,代碼如下:

 

if (document.documentElement.clientWidth < document.documentElement.offsetWidth-4){

//執行相關腳本。

呵呵,問題搞定,其實我覺得這是個非常無聊的問題,我想沒幾個人想着去判斷滾動條的有無,沒有什么實際意義,在這里幫助一下那些需要這功能的朋友走出誤區,免得浪費大量時間去網上搜而無果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM