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>
//可视区及屏幕坐标
//clientX 可视区x坐标,距离左边框的位置,clientY,
//鼠标在页面上可视区域的位置,从浏览器可视区域左上角开始,即是以浏览器滑动条此刻的滑动到的位置为参考点,随滑动条移动 而变化.

//pageX,pageY 鼠标在页面上的位置,从页面左上角开始,即是以页面为参考点,不随滑动条移动而变化
//screenX 屏幕区x坐标,距离左屏幕的位置,creenY


////在IE中,event对象是全局的,它被存储在window.event中
//在chrome 版本 40.0.2214.115 m中  evt与window.event都支持,改变其顺序不影响其结果,都是clienX当出现滚动,他显示的值是会变化的,而pageX不会
window.onload=function(){
		document.onclick=function(evt){
				var e=window.event||evt;
				//alert(e.clientX+' '+e.clientY);
				document.getElementById('div2').innerHTML='evt: '+evt+'  '+ 'window.event: '+window.event+'  '+'clientX: '+e.clientX+' '+'clientY: '+e.clientY+' '+'pageX: '+e.pageX+' '+'pageY: '+e.pageY;
				setTimeout(function(){
						document.write('document.body.clientLeft: '+document.body.clientLeft);
						document.write('document.body.scrollLeft: '+document.body.scrollLeft);
					},4000);
				
			};
			
			//获取尺寸
			//来看下offsetParent这个属性
			//看下实例的效果,意思就差不多明白了
			//找寻有定位设置的父节点,没有就是body了,听说有一些是html,到是没有验证
			console.info(document.getElementById('div11').offsetParent);//div1
			console.info(document.getElementById('div31').offsetParent);//body
			//对比下我写的css格式是不是有点眼熟
			console.info(document.getElementById('div1').offsetHeight);//200
			console.info(document.getElementById('div1').offsetLeft);//10
			console.info(document.getElementById('div1').clientLeft);//0
			
			console.info(document.getElementById('div1').offsetTop);//30
			console.info(document.getElementById('div1').offsetWidth);//300
			//下面这两种写法第一个是获取不到,第二个获取到了
			//总结:这种方式只有行内才能获得
			//再注意获得的值,一个带px,一个不带
			console.info(document.getElementById('div1').style.width);//这个为空
			console.info(document.getElementById('div3').style.width);//200px
			//再验证一个
			console.info(document.getElementById('div3').offsetWidth);//200
			//还有一些body,screen等等
			//一些总结
			console.info('网页可见区域宽: '+document.body.clientWidth);
			console.info('网页可见区域高: '+document.body.clientHeight);
			
			console.info('网页正文全文宽: '+document.body.scrollWidth);
			console.info('网页正文全高: '+document.body.scrollHeight);
			console.info('网页正文部上: '+window.screenTop);
			console.info('网页正文部左: '+window.screenLeft);
			
			console.info('屏幕分辨率的高: '+window.screen.height);
			console.info('屏幕分辨率的宽: '+window.screen.width);
			
			console.info('屏幕可用工作区的高: '+window.screen.availHeight);
			console.info('屏幕可用工作区的宽: '+window.screen.availWidth);
			
			
			//获取绝对位置
			//第一种方法
			
			
			//第二种方法
			
	};

//至此结束

相关推荐