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

資訊專欄INFORMATION COLUMN

原生JS獲取元素寬高實(shí)踐詳解

VishKozus / 1160人閱讀

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

開篇的話

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

任何求得的知識不去時常溫習(xí)運(yùn)用,也不是屬于你的。

記錄由來

在做個上拉廣告功能中遇到了一個“理所當(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里才會包括:

這種方式就會取得到值:

擴(kuò)展需求解決辦法,找到各個環(huán)境下的最優(yōu)方法

關(guān)于原生JS取dom元素寬高的方法,我總結(jié)了以下五種方法,有遺漏的望各位網(wǎng)友提出,謝謝~

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

dom元素.clientHeight/clientWidth

dom元素.offsetHeight/offsetWidth

dom元素.scrollHeight/scrollWidth

dom元素.style.height/width



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


getComputedStyle()方法

這個方法是只讀的,具體語法和應(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)容的總寬度



以上是通過實(shí)際測試得出來的結(jié)論,個人認(rèn)為比看一大片干巴巴的文字更容易理解。下一次在實(shí)戰(zhàn)中遇見應(yīng)該不會再犯錯了。

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/113964.html

相關(guān)文章

  • 原生JS獲取元素寬高實(shí)踐詳解

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

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

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

    Jensen 評論0 收藏0
  • 網(wǎng)頁保存為圖片及高清截圖的優(yōu)化 | canvas跨域圖片配置

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

    zhaochunqi 評論0 收藏0
  • 網(wǎng)頁保存為圖片及高清截圖的優(yōu)化 | canvas跨域圖片配置

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

    GHOST_349178 評論0 收藏0
  • 網(wǎng)頁保存為圖片及高清截圖的優(yōu)化 | canvas跨域圖片配置

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

    Galence 評論0 收藏0

發(fā)表評論

0條評論

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