摘要:原原獲取元素高度這樣寫之后在的時候發現返回值為。那為什么會是的,百一下谷一下測試一下發現這個這里只能獲取的值是標簽元素行內樣式的值。
開篇的話
任何不是親身實踐中求得的知識,都不是屬于你的。
任何求得的知識不去時常溫習運用,也不是屬于你的。
在做個上拉廣告功能中遇到了一個“理所當然”覺得對的用法,慢慢才排查出是獲取元素高度那里出了問題,這個問題記憶在書上或視頻中看到過,許久沒用,用的時候就想當然了。遂決定深入剖析用法,增加記憶,記錄發表出來,也能給各位前端同行、求學者增加印象。
出錯之處秉承結構、樣式、行為分離的宗旨,每次不管大小案例都是分開寫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來解釋:
這個方法是只讀的,具體語法和應用的詳細講解可以參見張鑫旭大佬的這篇:傳送門
由此可見,這個方法取得值是內容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
摘要:原原獲取元素高度這樣寫之后在的時候發現返回值為。那為什么會是的,百一下谷一下測試一下發現這個這里只能獲取的值是標簽元素行內樣式的值。 開篇的話 任何不是親身實踐中求得的知識,都不是屬于你的。任何求得的知識不去時常溫習運用,也不是屬于你的。 記錄由來 在做個上拉廣告功能中遇到了一個理所當然覺得對的用法,慢慢才排查出是獲取元素高度那里出了問題,這個問題記憶在書上或視頻中看到過,許久沒用,...
摘要:原原獲取元素高度這樣寫之后在的時候發現返回值為。那為什么會是的,百一下谷一下測試一下發現這個這里只能獲取的值是標簽元素行內樣式的值。 開篇的話 任何不是親身實踐中求得的知識,都不是屬于你的。任何求得的知識不去時常溫習運用,也不是屬于你的。 記錄由來 在做個上拉廣告功能中遇到了一個理所當然覺得對的用法,慢慢才排查出是獲取元素高度那里出了問題,這個問題記憶在書上或視頻中看到過,許久沒用,...
摘要:本次技術調研來源于項目中的一個重要功能需求實現微信長按網頁保存為截圖。以下主要解決兩類跨域的圖片資源包括已配置過的中的圖片資源和微信用戶頭像圖片資源。 本次技術調研來源于H5項目中的一個重要功能需求:實現微信長按網頁保存為截圖。 這里有個栗子(請用微信打開,長按圖片即可保存):3分鐘探索你的知識邊界 將整個網頁保存為圖片是一個十分有趣的功能,常見于H5活動頁的結尾頁分享。以下則是項目中...
摘要:本次技術調研來源于項目中的一個重要功能需求實現微信長按網頁保存為截圖。以下主要解決兩類跨域的圖片資源包括已配置過的中的圖片資源和微信用戶頭像圖片資源。 本次技術調研來源于H5項目中的一個重要功能需求:實現微信長按網頁保存為截圖。 這里有個栗子(請用微信打開,長按圖片即可保存):3分鐘探索你的知識邊界 將整個網頁保存為圖片是一個十分有趣的功能,常見于H5活動頁的結尾頁分享。以下則是項目中...
摘要:本次技術調研來源于項目中的一個重要功能需求實現微信長按網頁保存為截圖。以下主要解決兩類跨域的圖片資源包括已配置過的中的圖片資源和微信用戶頭像圖片資源。 本次技術調研來源于H5項目中的一個重要功能需求:實現微信長按網頁保存為截圖。 這里有個栗子(請用微信打開,長按圖片即可保存):3分鐘探索你的知識邊界 將整個網頁保存為圖片是一個十分有趣的功能,常見于H5活動頁的結尾頁分享。以下則是項目中...
閱讀 1970·2021-11-23 10:03
閱讀 4129·2021-11-22 09:34
閱讀 2465·2021-10-08 10:05
閱讀 2245·2019-08-30 15:53
閱讀 1685·2019-08-30 13:56
閱讀 1149·2019-08-29 16:52
閱讀 1101·2019-08-26 13:31
閱讀 3345·2019-08-26 11:45