`

javaScript 元素的位置,尺寸,宽度总结下

阅读更多
<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));
	};

    //在些说明下,绝对位置的图解,结合代码中的讲述

    //相对位置的图解


      //至此结束


 

 

  • 大小: 4.9 KB
  • 大小: 5.2 KB
分享到:
评论

相关推荐

    javascript获取网页高度宽度.rar

    总结,JavaScript获取网页高度和宽度的方法多种多样,可以根据具体需求选择合适的方式。了解这些知识对于提升网页交互体验和实现动态布局至关重要。在教育领域,理解并熟练掌握这些技术可以帮助学生更好地构建动态、...

    JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性

    本文将深入探讨JavaScript中与元素尺寸和位置相关的DOM属性,并指导如何在实际开发中正确理解和运用这些属性。 首先,需要明确几个关键的DOM属性,它们分别是offsetWidth、clientWidth、scrollWidth以及相对应的...

    第十三课 DOM元素尺寸1

    在前端开发中,DOM元素尺寸的获取和...在实际项目中,这些知识的应用广泛且至关重要,无论是简单的页面布局还是复杂的交互设计,都离不开对元素尺寸和位置的精确掌控。持续学习和实践,将是成为优秀前端开发者的关键。

    javascript获取网页各种高宽及位置的方法总结.docx

    ### JavaScript 获取网页各种高宽及位置的方法总结 #### 屏幕尺寸相关属性 - **`screen.width`**:表示屏幕的宽度(以像素为单位)。 - **`screen.height`**:表示屏幕的高度(以像素为单位)。 - **`screen....

    jquery实现动态改变div宽度和高度

    总结来说,通过本文的介绍,我们可以了解到利用jQuery来动态改变页面元素尺寸的便捷性,以及如何通过编写简单的事件处理函数来响应用户的操作。这种技术在开发响应式网站时尤为有用,它使得开发者能够创建出更加灵活...

    JAVASCRIPT弹出窗口大总结

    ### JavaScript弹出窗口知识点总结 #### 一、概述 JavaScript是一种广泛使用的脚本语言,它在前端开发中占据着极其重要的地位。通过JavaScript,开发者可以实现网页与用户的交互功能,其中弹出窗口就是一种常见的...

    JavaScript监听一个DOM元素大小变化

    本文中提到的一种方法是通过在目标元素内动态创建一个iframe元素,使得iframe的尺寸继承自父元素,并通过监听iframe的resize事件来间接监听到父元素尺寸的变化。当父元素尺寸变化时,其内部的iframe的尺寸也会随之...

    JS里各种宽度和高度的句柄

    在处理动态布局时,可能需要监听元素尺寸的变化,这时可以使用`resize`事件。但需要注意的是,不是所有元素都支持`resize`事件,它主要适用于`window`对象。若需监听其他元素的尺寸变化,可以使用MutationObserver...

    css控制div的宽度

    这在响应式设计中非常有用,确保元素在不同屏幕尺寸下保持合适的大小。 ```css div { max-width: 800px; min-width: 300px; } ``` 5. 内容盒模型与边界盒模型: 默认情况下,CSS使用内容盒模型,宽度只包含...

    jQuery获取页面及个元素高度、宽度的总结——超实用

    除了上述基本的获取,jQuery还提供了获取和设置元素尺寸的方法: - **获取或设置元素宽度**:`$(obj).width()` 可以用来获取元素的宽度,加上参数则可以设置元素的宽度。 - **获取或设置元素高度**:`$(obj).height...

    javascript获取设置div的高度和宽度兼容任何浏览器.docx

    对于获取和设置`div`元素的高度和宽度,JavaScript提供了多种方法来确保跨浏览器的一致性和兼容性。本文将详细介绍如何使用JavaScript来获取和设置`div`的高度和宽度,并确保这些操作能够在不同的浏览器中正常工作。...

    js获取屏幕的高度与宽度

    总结来说,通过使用JavaScript提供的各种属性和方法,开发者能够获得页面元素的尺寸信息,包括屏幕尺寸、滚动区域尺寸、内容区域尺寸等。在获取尺寸的过程中,除了需要了解不同属性和方法的应用场景,还需要注意...

    【JavaScript源代码】JavaScript实现移动小精灵的案例代码.docx

    总结一下,这篇文章简要介绍了如何利用JavaScript的`offset`属性获取元素的位置,并监听用户的点击事件来获取鼠标坐标。虽然案例没有完整展示元素的动态移动,但已经揭示了实现这一功能的基本思路。掌握这些基础知识...

    javascript实现加载各种尺寸图片自适应同一尺寸容器,切不变形

    总结来说,通过JavaScript结合适当的CSS,我们可以确保不同尺寸的图片在统一尺寸的容器中展示时保持比例,适应各种主流浏览器。这个过程涉及到DOM操作、事件监听以及尺寸计算,是前端开发中常见且实用的技术点。

    javascript获取网页各种高宽及位置的方法总结

    ### 元素尺寸和位置 在获取元素的尺寸和位置时,需要了解CSS的盒模型(Box Model)。默认的盒模型是`content-box`,其中元素的宽度和高度计算如下: - `boxWidth = width + 2*(margin + border + padding)` - `box...

    【JavaScript源代码】教你javascript如何获取指针的位置.docx

    总结一下,JavaScript中获取鼠标指针位置的关键在于正确使用`event`对象的属性,并处理浏览器之间的差异。通过结合`pageX/pageY`、`clientX/clientY`、`scrollLeft/scrollTop`以及`offsetX/offsetY`或`layerX/layerY...

    JavaScript 获取浏览器的显示区域大小信息

    本文将详细介绍如何使用JavaScript来获取浏览器显示区域的相关尺寸信息。 #### 一、关键概念解析 在开始之前,我们先来了解几个关键的概念: - **Client Size**:表示可视区域的宽度和高度。 - **Offset Size**:...

    JavaScript属性scrollLeft,scrollWidth,clientWidth,offsetWidth之完全详解

    `clientWidth`是用户在不滚动的情况下能看到的元素宽度。`event.clientX`与`clientWidth`一起使用可以确定鼠标在元素内的水平位置。 4. `offsetWidth`: 这个属性返回元素的完整宽度,包括边框、内填充和水平滚动条...

Global site tag (gtag.js) - Google Analytics