国产探花免费观看_亚洲丰满少妇自慰呻吟_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

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

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

圖片精選

主站蜘蛛池模板: 微山县| 徐汇区| 扎兰屯市| 玛多县| 出国| 崇明县| 句容市| 永州市| 水城县| 西华县| 鸡东县| 尼勒克县| 新巴尔虎左旗| 邢台县| 彭泽县| 满城县| 台北县| 抚州市| 江陵县| 兴业县| 军事| 龙门县| 改则县| 新巴尔虎左旗| 凤冈县| 遂宁市| 剑川县| 丰宁| 星座| 蒲江县| 平度市| 大同县| 南华县| 永州市| 旬邑县| 瑞安市| 宣汉县| 加查县| 巩留县| 巍山| 勐海县|