国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

js獲取元素相對窗口位置的實現(xiàn)代碼

2019-11-20 14:05:04
字體:
供稿:網(wǎng)友

JS獲取元素的offsetTop,offsetLeft等屬性

obj.clientWidth //獲取元素的寬度

obj.clientHeight //元素的高度
obj.offsetLeft //元素相對于父元素的left
obj.offsetTop //元素相對于父元素的top
obj.offsetWidth //元素的寬度
obj.offsetHeight //元素的高度

區(qū)別:

clientWidth = width + padding
clientHeight = height + padding
offsetWidth = width + padding + border
offsetHeight = width + padding + border
offset比client多了border的寬度

//獲取元素的縱坐標(biāo)(相對于窗口)function getTop(e){  var offset=e.offsetTop;  if(e.offsetParent!=null) offset+=getTop(e.offsetParent);  return offset;}//獲取元素的橫坐標(biāo)(相對于窗口)function getLeft(e){  var offset=e.offsetLeft;  if(e.offsetParent!=null) offset+=getLeft(e.offsetParent);  return offset;}

之前也寫過一篇JS關(guān)于獲取元素位置的文章:JS獲取元素的offsetTop,offsetLeft等屬性,我們可以通過offsetTop和offsetLeft屬性獲取元素相對窗口的位置,但offsetTop和offsetLeft屬性都是相對于父元素定位的,而通常需要獲取位置的元素都不是在最外層,所以遍歷上級元素的offset相關(guān)屬性少不了。那效率就成問題了。

//獲取元素的縱坐標(biāo)(相對于窗口)function getTop(e){var offset=e.offsetTop;if(e.offsetParent!=null) offset+=getTop(e.offsetParent);return offset;}//獲取元素的橫坐標(biāo)(相對于窗口)function getLeft(e){var offset=e.offsetLeft;if(e.offsetParent!=null) offset+=getLeft(e.offsetParent);return offset;}

好在瀏覽器給我提供了相應(yīng)的接口getBoundingClientRect,這個方法最早出現(xiàn)在IE瀏覽器中,后來的瀏覽器也跟著支持了這個方法,而且還更加完善,IE中只能獲取到元素的left,top,bottom,right的屬性,而后面的現(xiàn)代瀏覽器還能獲取到元素的width和

Chrome Firefox (Gecko) Internet Explorer Opera Safari
1.0 3.0 (1.9) 4.0 (Yes) 4.0

這里要注意的是,bottom是元素底部相對于窗口頂部的距離,而不是像css里面position的bottom相對于窗口底部,同理,rihgt屬性是元素最右邊相對于窗口左邊的距離。

var box = document.getElementById("box");var pos = box.getBoundingClientRect();box.innerHTML = "top:"+pos.top +  "left:"+pos.left +  "bottom:"+pos.bottom +  "right:"+pos.right +  "width:"+pos.width +  "height:"+pos.height

原創(chuàng)文章,轉(zhuǎn)載請注明: 轉(zhuǎn)載自前端開發(fā)

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 聂荣县| 德保县| 奇台县| 蒙自县| 新闻| 济南市| 象山县| 弥渡县| 乐至县| 东平县| 利川市| 安化县| 灵宝市| 珠海市| 商南县| 稷山县| 葫芦岛市| 蒲江县| 连平县| 高淳县| 定西市| 佛山市| 瑞丽市| 甘德县| 洞头县| 都昌县| 灵宝市| 石阡县| 中方县| 枣庄市| 杨浦区| 定州市| 赤水市| 海盐县| 滦南县| 酒泉市| 盘山县| 大庆市| 集安市| 北安市| 祥云县|