<html>
<head>
<title>js 获取div所填充内容的实际高度 </title>
</head>
<body>
<div id="div1">
百度知道是一个基于搜索的互动式知识问答分享平台,于2005年6月21日发布,并于2005年11月8日转为正式版。百度知道一直探索国际化发展,于2012年3月31日发布百度知道台湾版。
</div>
<button type="submit" onclick="test()">点击获取</button>
<script type="text/javascript">
function test() {
var oDiv = documentgetElementById('div1');
alert(oDivoffsetHeight);
}
</script>
</body>
</html>
下面结合各上图介绍一下各个属性的作用:
一offsetTop属性:
此属性可以获取元素的上外缘距离最近采用定位父元素内壁的距离,如果父元素中没有采用定位的,则是获取上外边缘距离文档内壁的距离。所谓的定位就是position属性值为relative、absolute或者fixed。
返回值是一个整数,单位是像素。
此属性是只读的。
二offsetLeft属性:
此属性和offsetTop的原理是一样的,只不过方位不同,这里就不多介绍了。
三offsetWidth属性:
此属性可以获取元素的宽度,宽度值包括:元素内容+内边距+边框。不包括外边距和滚动条部分。
返回值是一个整数,单位是像素。
此属性是只读的。
四offsetHeight属性:
此属性可以获取元素的高度,宽度值包括:元素内容+内边距+边框。不包括外边距和滚动条部分。
返回值是一个整数,单位是像素。
此属性是只读的。
五clientWidth属性:
此属性可以返回一个元素的宽度值,值是:元素的内容+内边距。不包括边框、外边距和滚动条部分。
返回值是一个整数,单位是像素。
此属性是只读的。
六clientHeight属性:
此属性可以返回一个元素的高度值,值是:元素的内容+内边距。不包括边框、外边距和滚动条部分。
返回值是一个整数,单位是像素。
此属性是只读的。
七scrollLeft属性:
此属性可以获取或者设置对象的最左边到对象在当前窗口显示的范围内的左边的距离,也就是元素被滚动条向左拉动的距离。
返回值是一个整数,单位是像素。
此属性是可读写的。
八scrollTop属性:
此属性可以获取或者设置对象的最顶部到对象在当前窗口显示的范围内的顶边的距离,也就是元素滚动条被向下拉动的距离。
返回值是一个整数,单位是像素。
js获取DIV的位置坐标的方法有三种,分别如下:
方法一:
var odiv=documentgetElementByIdx_x('divid');
alert(odivgetBoundingClientRect()left);
alert(odivgetBoundingClientRect()top);
方法二:
function CPos(x, y)
{
thisx = x;
thisy = y;
}
function GetObjPos(ATarget)
{
var target = ATarget;
var pos = new CPos(targetoffsetLeft, targetoffsetTop);
var target = targetoffsetParent;
while (target)
{
posx += targetoffsetLeft;
posy += targetoffsetTop;
target = targetoffsetParent
}
return pos;
}
var obj = documentgetElementByIdx_x('divid')
alert(GetObjPos(obj)['x']) //x坐标
alert(GetObjPos(obj)['y']) //y坐标
方法三:
function getElementPos(elementId){
var ua = navigatoruserAgenttoLowerCase();
var isOpera = (uaindexOf('opera') != -1);
var isIE = (uaindexOf('msie') != -1 && !isOpera); // not opera spoof
var el = documentgetElementByIdx_x(elementId);
if (elparentNode === null || elstyledisplay == 'none') {
return false;
}
var parent = null;
var pos = [];
var box;
if (elgetBoundingClientRect) //IE
{
box = elgetBoundingClientRect();
var scrollTop = Mathmax(documentdocumentElementscrollTop, documentbodyscrollTop);
var scrollLeft = Mathmax(documentdocumentElementscrollLeft, documentbodyscrollLeft);
return {
x: boxleft + scrollLeft,
y: boxtop + scrollTop
};
}
else
if (documentgetBoxObjectFor) // gecko
{
box = documentgetBoxObjectFor(el);
var borderLeft = (elstyleborderLeftWidth) parseInt(elstyleborderLeftWidth) : 0;
var borderTop = (elstyleborderTopWidth) parseInt(elstyleborderTopWidth) : 0;
pos = [boxx - borderLeft, boxy - borderTop];
}
else // safari & opera
{
pos = [eloffsetLeft, eloffsetTop];
parent = eloffsetParent;
if (parent != el) {
while (parent) {
pos[0] += parentoffsetLeft;
pos[1] += parentoffsetTop;
parent = parentoffsetParent;
}
}
if (uaindexOf('opera') != -1 || (uaindexOf('safari') != -1 && elstyleposition == 'absolute'))
{
pos[0] -= documentbodyoffsetLeft;
pos[1] -= documentbodyoffsetTop;
}
}
if (elparentNode) {
parent = elparentNode;
}
else {
parent = null;
}
while (parent && parenttagName != 'BODY' && parenttagName != 'HTML') { // account for any scrolled
ancestors
pos[0] -= parentscrollLeft;
pos[1] -= parentscrollTop;
if (parentparentNode) {
parent = parentparentNode;
}
else {
parent = null;
}
}
return {
x: pos[0],
y: pos[1]
};
}
var xd = getElementPos("divid");
alert(xdx);
alert(xdy);
先获取到div元素
用offsetTop和offsetLeft获取div相对顶部和左边的距离
代码如下:
<!DOCTYPE html><html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div id="div1">第一个div</div>
<script>
var div1 = documentgetElementById("div1");
alert("距顶:"+div1offsetTop+",距左:"+div1offsetLeft);
</script>
</body>
</html>
以上就是关于js 获取div所填充内容的实际高度全部的内容,包括:js 获取div所填充内容的实际高度、如何用JS 获取DIV的坐标位置、通过js怎么获得div的位置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)