JS和jQuery寬高詳解(上篇)

來源:互聯網
上載者:User

標籤:query   瀏覽器   沒有   alt   images   type   strong   fse   str   

一、JS相關的寬高

  1. 基本概念(window寬高和頁面元素div的寬高)
  2. 執行個體練習

      1)可視地區計算

      2)滾動到頂部,底部的實現

      3)捲軸的計算

 

二.jQuery相關的寬高

     1.基本概念

      2.執行個體實現

 

—————————————————————————————————————————————-

 

在此之前要明白window,document對象的區別,以便以後的調用。

 

window對象就是視窗,也就瀏覽器開啟的視窗;

window對象下的方法可省略window對象,例如alert(),實際是window.alert();

 

document對象,document對象是window對象的一個子集,是瀏覽器去除功能表列的那一部分;

所以document.body也可以寫成window.document.body;

 

瀏覽器的HTML文檔成為document對象。

 

一、JS相關的寬高

 

1.window相關的寬高

 

window.innerWidth 與window.innerHeight   //瀏覽器視窗展示所能展示內容的高度

window.outerWidth與window.outerHeight   //瀏覽器視窗的高度,包括功能表列以及開啟的調試代碼部分

window的innerWidth和outerWidth相容IE9及以上和其它主流瀏覽器。

 

screen相關的寬高

 

screen.width與screen.height            //指螢幕的寬高,只和裝置有關

screen.availWidth與screen.availHeight    //指螢幕可利用的寬高,去除螢幕的顯示欄

screen.screenLeft與screen.screenTop        //指視窗距離螢幕上邊和左邊的距離

 

2.document相關的寬高

 

1)client

 

document.body.clientWidth與document.body.clientHeight

 

這一對屬性指元素可視部分寬度和高度padding+content,只與設定的寬高有關係,和內容是否超出設定的寬高沒有關係;如果有捲軸則會減去捲軸的寬度;

 

假如無padding無捲軸

clientWidth = style.width;

 

假如有padding無捲軸

clientWidth = style.width +style. padding*2;

 

假如有padding有捲軸顯示

clientWidth = style.width +style. padding*2 - 捲軸的寬度;

 

document.body.clientTop與document.body.clientLeft

這一對屬性指元素邊的的大小

 

2)offset

 

document.body.offsetWidth與document.body.offsetHeight

這一對屬性指元素可視部分寬度和高度padding+content+border,只與設定的寬高有關係,和內容是否超出設定的寬高沒有關係,只和設定的border、width和padding有關;

 

假如無padding無捲軸無border

offsetWidth =clientWidth= style.width;

 

假如有padding無捲軸有border

offsetWidth = style.width +style. padding*2+border寬高*2;

offsetWidth = clientWidth + border寬度*2;

 

假如有padding有捲軸且顯示有border

offsetWidth = style.width +style. padding*2 +border寬高*2;

offsetWidth = clientWidth + border寬度*2 +捲軸寬度;

 

document.body.offsetLeft與document.body.offsetTop

這兩個屬性主要是相對於offsetParent而言的

 

這一對屬性在不同的瀏覽器中存在相容問題

 

3)scroll

 

document.body的scrollWidth和scrollHeight

 

document.body.scrollWidth與document.body.scrollHeight

(1)給定的寬高小於瀏覽器視窗時 

         scrollWidth通常指瀏覽器視窗的寬度;

    scrollHeight通常指瀏覽器視窗的高度。

 

(2)給定的寬高大與瀏覽器視窗的寬高,且內容小於給定的寬高

        scrollWidth = 給定的寬度+ 其所有的padding、margin和border;

   scrollHeight = 給定的高度 + 其所有的padding、margin和border。

       注意這裡的padding、margin和border沒有*2

 

(3)給定的寬高大與瀏覽器視窗的寬高,且內容大於給定的寬高

    scrollWidth = 內容寬度 + 其所有的padding、margin和border;

        scrollHeight = 內容高度 + 其所有的padding、margin和border。

          注意這裡的padding、margin和border沒有*2

      

 

div元素的scrollWidth和scrollHeight

(1)無捲軸時

    scrollWidth = clientWidth = style.width + padding*2;

    scrollHeight = clientHeight = style.height + padding*2;         

 

(2)有捲軸時

    scrollWidth  =  實際內容寬度 + padding*2;

    scrollHeight = 實際內容高度 + padding*2;

 

 

document.body.scrollTop與document.body.scrollLeft

這對屬性是可讀寫的,捲軸出現時被捲起的寬高。

 

-------------------------------------

JS基本寬高基本概念告一段落,下一篇便是相關的執行個體~~~????

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JS和jQuery寬高詳解(上篇)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.