国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

原生JS獲取元素寬高實踐詳解

VishKozus / 1148人閱讀

摘要:原原獲取元素高度這樣寫之后在的時候發現返回值為。那為什么會是的,百一下谷一下測試一下發現這個這里只能獲取的值是標簽元素行內樣式的值。

開篇的話

任何不是親身實踐中求得的知識,都不是屬于你的。

任何求得的知識不去時常溫習運用,也不是屬于你的。

記錄由來

在做個上拉廣告功能中遇到了一個“理所當然”覺得對的用法,慢慢才排查出是獲取元素高度那里出了問題,這個問題記憶在書上或視頻中看到過,許久沒用,用的時候就想當然了。遂決定深入剖析用法,增加記憶,記錄發表出來,也能給各位前端同行、求學者增加印象。

出錯之處

秉承結構、樣式、行為分離的宗旨,每次不管大小案例都是分開寫html、css、js。這也算拋磚引出了我犯錯的玉。

原css:

原js獲取DOM元素高度:

var adcon = document.getElementById("adcon");
var maxH = parseInt(adcon.style.height);



這樣寫之后在console的時候發現:




返回值為NaN。 Orz...

排查錯誤,找出原因

寫個例子測試一下:

仔細查找CSSStyleDeclaration發現height對應值為空

這樣就知道為什么會返回NaN了。


那為什么會是""的,百一下谷一下測試一下發現:
這個test.style.xxx 這里只能獲取的值是標簽元素行內樣式的值。
也就是說如果這樣寫:

CSSStyleDeclaration里才會包括:

這種方式就會取得到值:

擴展需求解決辦法,找到各個環境下的最優方法

關于原生JS取dom元素寬高的方法,我總結了以下五種方法,有遺漏的望各位網友提出,謝謝~

window.getComputedStyle(dom元素,"偽類").屬性名

dom元素.clientHeight/clientWidth

dom元素.offsetHeight/offsetWidth

dom元素.scrollHeight/scrollWidth

dom元素.style.height/width



光說不練假把式,直接上codes來解釋:


getComputedStyle()方法

這個方法是只讀的,具體語法和應用的詳細講解可以參見張鑫旭大佬的這篇:傳送門

由此可見,這個方法取得值是內容content區域的值,與padding、margin和邊框無關。

dom元素.clientHeight/clientWidth方法

可見這是內容區域+上下padding的值。

dom元素.offsetHeight/offsetWidth

可見這是內容區域+兩個padding+兩個border的值

dom元素.style.height/width

這一開始分析過了,取得是元素行內樣式的height值(內容區域的值

dom元素.scrollHeight/scrollWidth

我給例子加了很多內容,出現滾動條:

測試結果:

由此可見,scrollHeight方法返回的還是content內容區域+兩個padding的值。

scrollWidth方法返回的是正文內容的總寬度



以上是通過實際測試得出來的結論,個人認為比看一大片干巴巴的文字更容易理解。下一次在實戰中遇見應該不會再犯錯了。

小白一枚,淺面記錄,如有錯誤、建議、缺漏,懇請指出。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/113964.html

相關文章

  • 原生JS獲取元素寬高實踐詳解

    摘要:原原獲取元素高度這樣寫之后在的時候發現返回值為。那為什么會是的,百一下谷一下測試一下發現這個這里只能獲取的值是標簽元素行內樣式的值。 開篇的話 任何不是親身實踐中求得的知識,都不是屬于你的。任何求得的知識不去時常溫習運用,也不是屬于你的。 記錄由來 在做個上拉廣告功能中遇到了一個理所當然覺得對的用法,慢慢才排查出是獲取元素高度那里出了問題,這個問題記憶在書上或視頻中看到過,許久沒用,...

    stefan 評論0 收藏0
  • 原生JS獲取元素寬高實踐詳解

    摘要:原原獲取元素高度這樣寫之后在的時候發現返回值為。那為什么會是的,百一下谷一下測試一下發現這個這里只能獲取的值是標簽元素行內樣式的值。 開篇的話 任何不是親身實踐中求得的知識,都不是屬于你的。任何求得的知識不去時常溫習運用,也不是屬于你的。 記錄由來 在做個上拉廣告功能中遇到了一個理所當然覺得對的用法,慢慢才排查出是獲取元素高度那里出了問題,這個問題記憶在書上或視頻中看到過,許久沒用,...

    Jensen 評論0 收藏0
  • 網頁保存為圖片及高清截圖的優化 | canvas跨域圖片配置

    摘要:本次技術調研來源于項目中的一個重要功能需求實現微信長按網頁保存為截圖。以下主要解決兩類跨域的圖片資源包括已配置過的中的圖片資源和微信用戶頭像圖片資源。 本次技術調研來源于H5項目中的一個重要功能需求:實現微信長按網頁保存為截圖。 這里有個栗子(請用微信打開,長按圖片即可保存):3分鐘探索你的知識邊界 將整個網頁保存為圖片是一個十分有趣的功能,常見于H5活動頁的結尾頁分享。以下則是項目中...

    zhaochunqi 評論0 收藏0
  • 網頁保存為圖片及高清截圖的優化 | canvas跨域圖片配置

    摘要:本次技術調研來源于項目中的一個重要功能需求實現微信長按網頁保存為截圖。以下主要解決兩類跨域的圖片資源包括已配置過的中的圖片資源和微信用戶頭像圖片資源。 本次技術調研來源于H5項目中的一個重要功能需求:實現微信長按網頁保存為截圖。 這里有個栗子(請用微信打開,長按圖片即可保存):3分鐘探索你的知識邊界 將整個網頁保存為圖片是一個十分有趣的功能,常見于H5活動頁的結尾頁分享。以下則是項目中...

    GHOST_349178 評論0 收藏0
  • 網頁保存為圖片及高清截圖的優化 | canvas跨域圖片配置

    摘要:本次技術調研來源于項目中的一個重要功能需求實現微信長按網頁保存為截圖。以下主要解決兩類跨域的圖片資源包括已配置過的中的圖片資源和微信用戶頭像圖片資源。 本次技術調研來源于H5項目中的一個重要功能需求:實現微信長按網頁保存為截圖。 這里有個栗子(請用微信打開,長按圖片即可保存):3分鐘探索你的知識邊界 將整個網頁保存為圖片是一個十分有趣的功能,常見于H5活動頁的結尾頁分享。以下則是項目中...

    Galence 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<