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

首頁 > 語言 > JavaScript > 正文

js獲取元素相對窗口位置的實現代碼

2024-05-06 16:09:20
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了js獲取元素相對窗口位置的實現代碼,需要的朋友可以參考下

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

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

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

區別:

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

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

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

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

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

ChromeFirefox (Gecko)Internet ExplorerOperaSafari

1.03.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

原創文章,轉載請注明: 轉載自前端開發

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 山东省| 新巴尔虎左旗| 西平县| 安远县| 茌平县| 海伦市| 秭归县| 昌图县| 化德县| 建德市| 辽源市| 富裕县| 榆树市| 扎兰屯市| 济源市| 恭城| 革吉县| 辽阳县| 阜宁县| 汪清县| 若尔盖县| 云安县| 河源市| 苗栗县| 桦川县| 武夷山市| 如皋市| 玉龙| 余干县| 平凉市| 伊宁县| 青神县| 林周县| 庆阳市| 元谋县| 望江县| 任丘市| 阜宁县| 三台县| 南丰县| 鹰潭市|