摘要:原原獲取元素高度這樣寫之后在的時候發(fā)現(xiàn)返回值為。那為什么會是的,百一下谷一下測試一下發(fā)現(xiàn)這個這里只能獲取的值是標(biāo)簽元素行內(nèi)樣式的值。
開篇的話
任何不是親身實踐中求得的知識,都不是屬于你的。
任何求得的知識不去時常溫習(xí)運用,也不是屬于你的。
在做個上拉廣告功能中遇到了一個“理所當(dāng)然”覺得對的用法,慢慢才排查出是獲取元素高度那里出了問題,這個問題記憶在書上或視頻中看到過,許久沒用,用的時候就想當(dāng)然了。遂決定深入剖析用法,增加記憶,記錄發(fā)表出來,也能給各位前端同行、求學(xué)者增加印象。
出錯之處秉承結(jié)構(gòu)、樣式、行為分離的宗旨,每次不管大小案例都是分開寫html、css、js。這也算拋磚引出了我犯錯的玉。
原css:
原js獲取DOM元素高度:
var adcon = document.getElementById("adcon"); var maxH = parseInt(adcon.style.height);
這樣寫之后在console的時候發(fā)現(xiàn):
返回值為NaN。 Orz...
寫個例子測試一下:
仔細(xì)查找CSSStyleDeclaration發(fā)現(xiàn)height對應(yīng)值為空
這樣就知道為什么會返回NaN了。
那為什么會是""的,百一下谷一下測試一下發(fā)現(xiàn):
這個test.style.xxx 這里只能獲取的值是標(biāo)簽元素行內(nèi)樣式的值。
也就是說如果這樣寫:
CSSStyleDeclaration里才會包括:
這種方式就會取得到值:
關(guān)于原生JS取dom元素寬高的方法,我總結(jié)了以下五種方法,有遺漏的望各位網(wǎng)友提出,謝謝~
window.getComputedStyle(dom元素,"偽類").屬性名
dom元素.clientHeight/clientWidth
dom元素.offsetHeight/offsetWidth
dom元素.scrollHeight/scrollWidth
dom元素.style.height/width
光說不練假把式,直接上codes來解釋:
這個方法是只讀的,具體語法和應(yīng)用的詳細(xì)講解可以參見張鑫旭大佬的這篇:傳送門
由此可見,這個方法取得值是內(nèi)容content區(qū)域的值,與padding、margin和邊框無關(guān)。
dom元素.clientHeight/clientWidth方法可見這是內(nèi)容區(qū)域+上下padding的值。
dom元素.offsetHeight/offsetWidth可見這是內(nèi)容區(qū)域+兩個padding+兩個border的值
dom元素.style.height/width這一開始分析過了,取得是元素行內(nèi)樣式的height值(內(nèi)容區(qū)域的值)
dom元素.scrollHeight/scrollWidth我給例子加了很多內(nèi)容,出現(xiàn)滾動條:
測試結(jié)果:
由此可見,scrollHeight方法返回的還是content內(nèi)容區(qū)域+兩個padding的值。
scrollWidth方法返回的是正文內(nèi)容的總寬度
以上是通過實際測試得出來的結(jié)論,個人認(rèn)為比看一大片干巴巴的文字更容易理解。下一次在實戰(zhàn)中遇見應(yīng)該不會再犯錯了。
小白一枚,淺面記錄,如有錯誤、建議、缺漏,懇請指出。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/53027.html
摘要:原原獲取元素高度這樣寫之后在的時候發(fā)現(xiàn)返回值為。那為什么會是的,百一下谷一下測試一下發(fā)現(xiàn)這個這里只能獲取的值是標(biāo)簽元素行內(nèi)樣式的值。 開篇的話 任何不是親身實踐中求得的知識,都不是屬于你的。任何求得的知識不去時常溫習(xí)運用,也不是屬于你的。 記錄由來 在做個上拉廣告功能中遇到了一個理所當(dāng)然覺得對的用法,慢慢才排查出是獲取元素高度那里出了問題,這個問題記憶在書上或視頻中看到過,許久沒用,...
摘要:原原獲取元素高度這樣寫之后在的時候發(fā)現(xiàn)返回值為。那為什么會是的,百一下谷一下測試一下發(fā)現(xiàn)這個這里只能獲取的值是標(biāo)簽元素行內(nèi)樣式的值。 開篇的話 任何不是親身實踐中求得的知識,都不是屬于你的。任何求得的知識不去時常溫習(xí)運用,也不是屬于你的。 記錄由來 在做個上拉廣告功能中遇到了一個理所當(dāng)然覺得對的用法,慢慢才排查出是獲取元素高度那里出了問題,這個問題記憶在書上或視頻中看到過,許久沒用,...
摘要:本次技術(shù)調(diào)研來源于項目中的一個重要功能需求實現(xiàn)微信長按網(wǎng)頁保存為截圖。以下主要解決兩類跨域的圖片資源包括已配置過的中的圖片資源和微信用戶頭像圖片資源。 本次技術(shù)調(diào)研來源于H5項目中的一個重要功能需求:實現(xiàn)微信長按網(wǎng)頁保存為截圖。 這里有個栗子(請用微信打開,長按圖片即可保存):3分鐘探索你的知識邊界 將整個網(wǎng)頁保存為圖片是一個十分有趣的功能,常見于H5活動頁的結(jié)尾頁分享。以下則是項目中...
摘要:本次技術(shù)調(diào)研來源于項目中的一個重要功能需求實現(xiàn)微信長按網(wǎng)頁保存為截圖。以下主要解決兩類跨域的圖片資源包括已配置過的中的圖片資源和微信用戶頭像圖片資源。 本次技術(shù)調(diào)研來源于H5項目中的一個重要功能需求:實現(xiàn)微信長按網(wǎng)頁保存為截圖。 這里有個栗子(請用微信打開,長按圖片即可保存):3分鐘探索你的知識邊界 將整個網(wǎng)頁保存為圖片是一個十分有趣的功能,常見于H5活動頁的結(jié)尾頁分享。以下則是項目中...
摘要:本次技術(shù)調(diào)研來源于項目中的一個重要功能需求實現(xiàn)微信長按網(wǎng)頁保存為截圖。以下主要解決兩類跨域的圖片資源包括已配置過的中的圖片資源和微信用戶頭像圖片資源。 本次技術(shù)調(diào)研來源于H5項目中的一個重要功能需求:實現(xiàn)微信長按網(wǎng)頁保存為截圖。 這里有個栗子(請用微信打開,長按圖片即可保存):3分鐘探索你的知識邊界 將整個網(wǎng)頁保存為圖片是一個十分有趣的功能,常見于H5活動頁的結(jié)尾頁分享。以下則是項目中...
閱讀 1836·2021-11-25 09:43
閱讀 1346·2021-11-22 15:08
閱讀 3751·2021-11-22 09:34
閱讀 3232·2021-09-04 16:40
閱讀 3034·2021-09-04 16:40
閱讀 552·2019-08-30 15:54
閱讀 1341·2019-08-29 17:19
閱讀 1759·2019-08-28 18:13