JS判斷頁面是否出現捲軸

來源:互聯網
上載者:User

標籤:block   public   誤區   功能   錯誤   像素   網上   作用   判斷   

今天無聊,幫一個網友解決一個很無聊的問題,用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){

//執行相關指令碼。

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

JS判斷頁面是否出現捲軸

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.