<style> body{ margin:0px; padding:0px; } #div1{ width:300px; height:200px; background:#CC3; margin:30px auto 0px 10px; position:relative; } #div2{ width:300px; height:200px; background:#096; position:absolute; left:310px; } #div11{ margin-left:10px; } </style> </head> <body> <div id='div1'> xxxxxx <div id='div11'>fasdfa</div> </div> <div id='div2'> </div> <div id='div3' style="width:200px"> <div id='div31'></div> </div> </body>
window.onload=function(){ //获得绝对位置 //这是个测试 /*var oParent=document.getElementById('div11').offsetParent; //var oParent=document.getElementById('div11').offsetLeft; while(oParent !==null){ console.info('oParent: '+oParent.offsetLeft+oParent); //实际上是margin-left oParent=oParent.offsetParent; }*/ //获得绝对位置 //网页元素的绝对位置,指该元素的左上角相对于整张网页左上角的坐标 //高类似这样写 function getAbsLeft(node){ var leftX=0; while(node !==null){ console.info(node+' '+leftX); leftX+=node.offsetLeft;//这个得放上面,因为最后一次循环的时候为null就会报错 node=node.offsetParent; } return leftX; } var oDiv11=document.getElementById('div11'); console.info(getAbsLeft(oDiv11)); //相对来位置 //网页元素的相对位置,指该元素左上角相对于浏览器窗口左上角的坐标。 //有了绝对位置就可以获得相对位置,用绝对位置减去滚动的距离就可 document中的scrollLeft 与 scrollTop //compat mode 兼容模式 //BackCompat:标准兼容模式关闭。 //CSS1Compat:标准兼容模式开启。 //当document.compatMode等于BackCompat时,浏览器客户区宽度是document.body.clientWidth; //当document.compatMode等于CSS1Compat时,浏览器客户区宽度是document.documentElement.clientWidth。 //以上是做兼容用的 function getRelLeft(node){ var leftX=0; var scrollLeftX=0; while(node !==null){ console.info(node+' '+leftX); leftX+=node.offsetLeft;//这个得放上面,因为最后一次循环的时候为null就会报错 node=node.offsetParent; } console.info(document.compatMode);//CSS1Compat if(document.compatMode=='BackCompat'){ scrollLeftX=document.body.scrollLeft; console.info('关scrollLeftX: '+scrollLeftX); }else{ scrollLeftX=document.documentElement.scrollLeft; console.info('开scrollLeftX: '+scrollLeftX); } return leftX-scrollLeftX; } //oDiv11.onclick=getRelLeft(oDiv11); //下面这个是延迟了让它出现滚动条都是不出值 setTimeout(function(){ console.info('开始'); getRelLeft(oDiv11); },6000); //怎么说呢,逻辑上是这样,可惜没有看出效果 //若有错误,欢迎指出 //快速得到元素的相对位置 console.info('快速'+oDiv11.getBoundingClientRect().left);//20 //绝对位置的效果还是没有出来 console.info('快速'+(oDiv11.getBoundingClientRect().left+document.documentElement.scrollLeft)); };
//在些说明下,绝对位置的图解,结合代码中的讲述
//相对位置的图解
//至此结束
相关推荐
总结,JavaScript获取网页高度和宽度的方法多种多样,可以根据具体需求选择合适的方式。了解这些知识对于提升网页交互体验和实现动态布局至关重要。在教育领域,理解并熟练掌握这些技术可以帮助学生更好地构建动态、...
本文将深入探讨JavaScript中与元素尺寸和位置相关的DOM属性,并指导如何在实际开发中正确理解和运用这些属性。 首先,需要明确几个关键的DOM属性,它们分别是offsetWidth、clientWidth、scrollWidth以及相对应的...
在前端开发中,DOM元素尺寸的获取和...在实际项目中,这些知识的应用广泛且至关重要,无论是简单的页面布局还是复杂的交互设计,都离不开对元素尺寸和位置的精确掌控。持续学习和实践,将是成为优秀前端开发者的关键。
### JavaScript 获取网页各种高宽及位置的方法总结 #### 屏幕尺寸相关属性 - **`screen.width`**:表示屏幕的宽度(以像素为单位)。 - **`screen.height`**:表示屏幕的高度(以像素为单位)。 - **`screen....
总结来说,通过本文的介绍,我们可以了解到利用jQuery来动态改变页面元素尺寸的便捷性,以及如何通过编写简单的事件处理函数来响应用户的操作。这种技术在开发响应式网站时尤为有用,它使得开发者能够创建出更加灵活...
### JavaScript弹出窗口知识点总结 #### 一、概述 JavaScript是一种广泛使用的脚本语言,它在前端开发中占据着极其重要的地位。通过JavaScript,开发者可以实现网页与用户的交互功能,其中弹出窗口就是一种常见的...
本文中提到的一种方法是通过在目标元素内动态创建一个iframe元素,使得iframe的尺寸继承自父元素,并通过监听iframe的resize事件来间接监听到父元素尺寸的变化。当父元素尺寸变化时,其内部的iframe的尺寸也会随之...
在处理动态布局时,可能需要监听元素尺寸的变化,这时可以使用`resize`事件。但需要注意的是,不是所有元素都支持`resize`事件,它主要适用于`window`对象。若需监听其他元素的尺寸变化,可以使用MutationObserver...
这在响应式设计中非常有用,确保元素在不同屏幕尺寸下保持合适的大小。 ```css div { max-width: 800px; min-width: 300px; } ``` 5. 内容盒模型与边界盒模型: 默认情况下,CSS使用内容盒模型,宽度只包含...
除了上述基本的获取,jQuery还提供了获取和设置元素尺寸的方法: - **获取或设置元素宽度**:`$(obj).width()` 可以用来获取元素的宽度,加上参数则可以设置元素的宽度。 - **获取或设置元素高度**:`$(obj).height...
对于获取和设置`div`元素的高度和宽度,JavaScript提供了多种方法来确保跨浏览器的一致性和兼容性。本文将详细介绍如何使用JavaScript来获取和设置`div`的高度和宽度,并确保这些操作能够在不同的浏览器中正常工作。...
总结来说,通过使用JavaScript提供的各种属性和方法,开发者能够获得页面元素的尺寸信息,包括屏幕尺寸、滚动区域尺寸、内容区域尺寸等。在获取尺寸的过程中,除了需要了解不同属性和方法的应用场景,还需要注意...
总结一下,这篇文章简要介绍了如何利用JavaScript的`offset`属性获取元素的位置,并监听用户的点击事件来获取鼠标坐标。虽然案例没有完整展示元素的动态移动,但已经揭示了实现这一功能的基本思路。掌握这些基础知识...
总结来说,通过JavaScript结合适当的CSS,我们可以确保不同尺寸的图片在统一尺寸的容器中展示时保持比例,适应各种主流浏览器。这个过程涉及到DOM操作、事件监听以及尺寸计算,是前端开发中常见且实用的技术点。
### 元素尺寸和位置 在获取元素的尺寸和位置时,需要了解CSS的盒模型(Box Model)。默认的盒模型是`content-box`,其中元素的宽度和高度计算如下: - `boxWidth = width + 2*(margin + border + padding)` - `box...
总结一下,JavaScript中获取鼠标指针位置的关键在于正确使用`event`对象的属性,并处理浏览器之间的差异。通过结合`pageX/pageY`、`clientX/clientY`、`scrollLeft/scrollTop`以及`offsetX/offsetY`或`layerX/layerY...
本文将详细介绍如何使用JavaScript来获取浏览器显示区域的相关尺寸信息。 #### 一、关键概念解析 在开始之前,我们先来了解几个关键的概念: - **Client Size**:表示可视区域的宽度和高度。 - **Offset Size**:...
`clientWidth`是用户在不滚动的情况下能看到的元素宽度。`event.clientX`与`clientWidth`一起使用可以确定鼠标在元素内的水平位置。 4. `offsetWidth`: 这个属性返回元素的完整宽度,包括边框、内填充和水平滚动条...