亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

javascript筆記--(第二十二章)DOM元素尺寸和位置

2024-04-27 15:12:29
字體:
來源:轉載
供稿:網友

獲取元素CSS大小

通過style內聯獲取元素的大小

style獲取只能獲取到行內style屬性的CSS樣式中的寬和高,如果有獲??;如果沒有則返回空。
<!DOCTYPE html><head>	<meta charset="UTF-8">	<title>Document</title></head><body>	<div id="box" style="width:100px;"></div></body><script type="text/javascript">	var box = document.getElementById('box');	console.log(box.style.width);//200px	console.log(box.style.height);//??</script></html>

通過計算獲取元素的大小

通過計算獲取元素的大小,無關你是否是行內、內聯或者鏈接,它經過計算后得到的結果返回出來。如果本身設置大小,它會返回元素的大小,如果本身沒有設置,非IE瀏覽器會返回默認的大小,IE瀏覽器返回auto。
<!DOCTYPE html><head>	<meta charset="UTF-8">	<title>Document</title>	<style type="text/css">		#box{			height:200px;		}	</style></head><body>	<div id="box" style="width:100px;"></div></body><script type="text/Javascript">	var box = document.getElementById("box");	var style = window.getComputedStyle ? 		window.getComputedStyle(box, null) : null || box.currentStyle;	console.log(style.width);//100px	console.log(style.height);//200px</script></html>

通過css規則獲取元素大小

cssRules(或rules)只能獲取到內聯和鏈接樣式的寬和高,不能獲取到行內和計算后的樣式
<!DOCTYPE html><head>	<meta charset="UTF-8">	<title>Document</title>	<style type="text/css">		#box{			height:200px;		}	</style></head><body>	<div id="box" style="width:100px;"></div></body><script type="text/javascript">	var sheet = document.styleSheets[0];//獲取link或style	var rule = (sheet.cssRules || sheet.rules)[0];//獲取第一條規則	console.log(rule.style.width);//空	console.log(rule.style.height);//200px</script></html>總結:以上的三種CSS獲取元素大小的方法,只能獲取元素的CSS大小,卻無法獲取元素本身實際的大小。比如加上了內邊距、滾動條、邊框之類的。

獲取元素實際大小

clientWidth和clientHeight

是對象的可見寬和高,不包括滾動條等邊線,會隨窗口的顯示大小改變。返回元素大小,但沒有單位,默認單位是px,如果你強行設置了單位,比如100em之類,它還是會返回px的大小
<!DOCTYPE html><head>	<meta charset="UTF-8">	<title>Document</title></head><body>	<div id="box" style="width:100px;padding:10px;border:5px"></div></body><script type="text/javascript">	var box = document.getElementById("box");	console.log(box.clientWidth);//120	console.log(box.clientHeight);//20</script></html>如果說沒有設置任何CSS的寬和高度,那么非IE瀏覽器會算上滾動條和內邊距的計算后的大小,而IE瀏覽器則返回0

scrollWidth和scrollHeight

是對象的實際內容的寬和高,不包邊線寬度,會隨對象中內容的多少改變
<!DOCTYPE html><head>	<meta charset="UTF-8">	<title>Document</title></head><body>	<div id="box" style="border:5px solid red;box-sizing:border-box;width:100px;overflow-y: auto">		test test test test test test test test test 	</div></body><script type="text/javascript">	var box = document.getElementById("box");	console.log(box.clientWidth);//90	console.log(box.clientHeight);//90</script></html>如果沒有設置任何CSS的寬和高度,它會得到計算后的寬度和高度。

offsetWidth和offsetHeight

是對象的可見寬和高,包滾動條等邊線,會隨窗口的顯示大小改變。
<!DOCTYPE html><head>	<meta charset="UTF-8">	<title>Document</title></head><body>	<div id="box" style="width:100px;padding:10px;border:5px solid red;">aa</div></body><script type="text/javascript">	var box = document.getElementById("box");	console.log(box.offsetWidth);//130	console.log(box.offsetHeight);//48</script></html>如果沒有設置任何CSS的寬和高度,他會得到計算后的寬度和高度

獲取元素周邊大小

clientLeft和clientTop

這組屬性可以獲取元素設置了左邊框和上邊框的大小
<!DOCTYPE html><head>	<meta charset="UTF-8">	<title>Document</title></head><body style="margin:0">	<div id="box" style="width:100px;padding:10px;border:5px solid red;border-top-width:10px">aa</div></body><script type="text/javascript">	var box = document.getElementById("box");	console.log(box.clientLeft);//5	console.log(box.clientTop);//10</script></html>

offsetLeft和offsetTop

這組屬性可以獲取當前元素相對于父元素的位置
<!DOCTYPE html><head>	<meta charset="UTF-8">	<title>Document</title></head><body style="margin:0;padding: 8px 16px;position: relative;">	<div id="box" style="width:100px;padding:10px;border:5px solid red;border-top-width:10px">aa</div>	<div id="box1" style="position: absolute;left:40px;top: 30px"></div></body><script type="text/javascript">	var box = document.getElementById("box");	console.log(box.offsetLeft);//16	console.log(box.offsetTop);//8	var box1 = document.getElementById("box1");	console.log(box1.offsetLeft);//40	console.log(box1.offsetTop);//30</script></html>獲取元素當前相對于父元素的位置,最好將它設置為定位position:absolute;否則不同的瀏覽器會有不同的解釋

scrollTop和scrollLeft

這組屬性可以獲取滾動條被隱藏的區域大?。丛刂械膬热莩鲈厣线吔缁蛘咦筮吔绲哪遣糠郑?,也可設置定位到該區域。

元素位置

getBoundingClientRect()。這個方法返回一個矩形對象,包含四個屬性:left、top、right和bottom。分別表示元素各邊與頁面上邊和左邊的距離
<!DOCTYPE html><head>	<meta charset="UTF-8">	<title>Document</title></head><body style="margin:0;padding: 8px 16px;position: relative;">	<div id="box" style="width:100px;padding:10px;border:5px solid red;border-top-width:10px">aa</div>	<div id="box1" style="position: absolute;left:40px;top: 30px;width:50px"></div></body><script type="text/javascript">	var box = document.getElementById('box');//獲取元素	console.log(box.getBoundingClientRect().top);//8,元素上邊距離頁面上邊的距離	console.log(box.getBoundingClientRect().right);//146,元素右邊距離頁面左邊的距離	console.log(box.getBoundingClientRect().bottom);//61,元素下邊距離頁面上邊的距離	console.log(box.getBoundingClientRect().left);//16,元素左邊距離頁面左邊的距離	var box1 = document.getElementById('box1');	console.log(box1.getBoundingClientRect().top);//30	console.log(box1.getBoundingClientRect().right);//90	console.log(box1.getBoundingClientRect().bottom);//30	console.log(box1.getBoundingClientRect().left);//40</script></html>注意:IE、Firefox3+、Opera9.5、Chrome、Safari支持,在IE中,默認坐標從(2,2)開始計算,導致最終距離比其他瀏覽器多出兩個像素
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
26uuu久久噜噜噜噜| 国产综合香蕉五月婷在线| 久久精品国产电影| 国产香蕉一区二区三区在线视频| 欧美日韩中文字幕日韩欧美| 久久久成人av| 色偷偷888欧美精品久久久| 色综合91久久精品中文字幕| 欧美中文在线观看国产| 亚洲精品国产综合区久久久久久久| 国内精品久久久| 欧美在线免费看| 亚洲女人初尝黑人巨大| 色综合久久88色综合天天看泰| 成人久久久久久久| 久久久噜噜噜久久中文字免| 中文字幕日韩在线视频| 国产精品99久久99久久久二8| 国产精品亚洲一区二区三区| 国产成人一区二区三区电影| 中文字幕国产亚洲2019| 欧美大学生性色视频| 国内免费久久久久久久久久久| 欧洲精品在线视频| 国产成人精品电影久久久| 国产精品亚洲精品| 国产亚洲精品久久久久久| 少妇激情综合网| 九九热在线精品视频| 中文字幕一区二区精品| 国产成人啪精品视频免费网| 伊是香蕉大人久久| 91精品国产高清久久久久久久久| 国产一区二区三区在线观看视频| 国产精品视频精品| 亚洲人成电影在线播放| 欧美色图在线视频| 成人性生交大片免费看小说| 国产精品激情av电影在线观看| 亚洲色图欧美制服丝袜另类第一页| 亚洲欧美日韩一区二区三区在线| 亚洲精品suv精品一区二区| 91久久嫩草影院一区二区| 97在线观看免费高清| 欧美一级电影久久| 久久久久亚洲精品| 懂色av一区二区三区| 久久精品成人欧美大片| 国产在线拍偷自揄拍精品| 亚洲性av在线| 久久久久久久久久久久久久久久久久av| 91av视频在线| 国模吧一区二区三区| 日韩在线免费视频| 欧美亚洲国产视频| 97香蕉超级碰碰久久免费的优势| xxav国产精品美女主播| 日本久久久久久| 国产亚洲精品一区二区| 日韩精品视频在线免费观看| 清纯唯美亚洲激情| 成人精品一区二区三区| 日韩美女激情视频| 668精品在线视频| 国产精品入口免费视| 欧美另类交人妖| 热久久这里只有精品| 亚洲自拍偷拍福利| 日韩免费观看网站| 日韩国产激情在线| 中文字幕在线看视频国产欧美| 欧美另类暴力丝袜| 亚洲人成电影在线观看天堂色| 亚洲精品中文字幕有码专区| 久久精品中文字幕| 国产精品丝袜久久久久久不卡| 777精品视频| 久久久999精品免费| 亚洲黄色av女优在线观看| 欧美亚洲成人网| 国产在线观看一区二区三区| 欧美极品第一页| 欧美激情乱人伦| 亚洲欧美在线x视频| 成人精品视频99在线观看免费| 91亚洲精品久久久久久久久久久久| 欧美高清在线观看| 亚洲视频国产视频| 亚洲欧美日韩天堂一区二区| 日韩国产高清视频在线| 欧美成人激情在线| 欧美性生交大片免网| 国产精品久久久久久久7电影| 日韩经典第一页| 国产在线观看一区二区三区| 精品久久久久久久中文字幕| 久久中文精品视频| 另类专区欧美制服同性| 国产精品av电影| 欧美激情亚洲精品| 欧美高跟鞋交xxxxxhd| 欧美综合国产精品久久丁香| 亚洲美腿欧美激情另类| 日韩毛片中文字幕| 国产精品久久久久久中文字| 欧美日韩亚洲成人| 国产女精品视频网站免费| 精品亚洲国产成av人片传媒| 国产ts一区二区| 国模吧一区二区| 欧美性受xxx| 欧美国产日韩一区| 欧美激情视频给我| 日日骚av一区| 91在线观看免费高清完整版在线观看| 亚洲国产精品久久精品怡红院| 亚洲精品www久久久| 在线观看日韩欧美| 欧美一级片一区| 亚洲午夜激情免费视频| 日韩av免费网站| 精品久久久久久电影| 亚洲成年人在线播放| 狠狠操狠狠色综合网| 日本不卡高字幕在线2019| 91精品国产色综合久久不卡98口| 亚洲成人xxx| 亚洲欧美精品在线| 日韩欧美成人免费视频| 国内精品久久久久久中文字幕| 韩国日本不卡在线| 91精品视频在线播放| 国产自摸综合网| 欧美成人免费小视频| 欧美日韩国产中文精品字幕自在自线| 欧美怡春院一区二区三区| 亚洲一区二区三区视频播放| 国产精品久久久久久久午夜| 亚洲最大的免费| 91久久精品国产91性色| 国产日本欧美一区二区三区| 国产在线999| 亚洲专区在线视频| 国产在线拍偷自揄拍精品| 亚洲人精选亚洲人成在线| 热久久这里只有精品| 国内精品一区二区三区四区| 亚洲视频精品在线| 日韩精品欧美国产精品忘忧草| 日本国产一区二区三区| 91tv亚洲精品香蕉国产一区7ujn| 在线观看欧美日韩| 久久亚洲欧美日韩精品专区| 91久久精品美女高潮| 久久精品99无色码中文字幕| 国产精品亚洲综合天堂夜夜| 国产亚洲精品久久久| 欧美成人黑人xx视频免费观看| 欧美激情综合色综合啪啪五月| 久久视频国产精品免费视频在线| 欧美一区深夜视频| 亚洲欧洲免费视频| 亚洲欧美日韩精品久久奇米色影视| 亚洲视频专区在线|