JavaScript获取与操作窗口属性

一、查看滚动条的滚动距离

常用属性: window.pageXOffset/pageYOffset

IE8及IE8以下不同时兼容 document.body.scrollLeft/scrollTop 和 documentElement.scrollLeft/scrollTop ,兼容性比较混乱,用时取两个值相加。因为有个规律是一个有值另一个就为0;

以下为获取滚动条滚动距离的兼容性函数

function getScrollOffset(){
	if(window.pageYOffset != undefined){
		return {
			x: window.pageXOffset,
			y: window.pageYOffset
		}
	} else {
		return {
			x: document.body.scrollLeft + document.documentElement.scrollLeft,
			y: document.body.scrollTop + document.documentElement.scrollTop
		}
	}
}

二、查看视口的尺寸

window.innerWidth/innerHeight (加上 滚动条宽度 / 高度) IE8及IE8以下不兼容

document.documentElement.clientWidth/clientHeight 标准模式下,任意浏览器都兼容

document.body.clientWidth/clientHeight 适用于怪异模式下的浏览器

以下为查看视口的尺寸的兼容性函数

//获取页面窗口大小的兼容性函数
function getViewportOffset(){
	if( window.innerWidth){
		return {
			w: window.innerWidth,
			h: window.innerHeight
		}
	} else {
		if(document.compatMode === "BackCompat"){
			return {
				w: document.body.clientWidth,
				h: document.body.clientHeight
			}
		} else {
			return {
				w: document.documentElement.clientWidth,
				h: document.documentElement.clientHeight
			}
		}
	}
}

查看元素的尺寸

dom.offsetWidth,dom.offsetHeight

domEle.getBoundingClientRect(); 兼容性很好 该方法返回一个对象,对象里面有left,top,right,bottom等属性。left和top代表该元素左上角的X和Y坐标,right和bottom代表元素右下角的X和Y坐标 height和width属性。老版本IE并未实现。 注意:返回的结果并不是“实时的”

查看元素的位置

dom.offsetLeft, dom.offsetTop 对于无定位父级的元素,返回相对文档的坐标。对于有定位父级的元素,返回相对于最近的有定位的父级的坐标。(无论是 left 还是margin-left等都是距离。 )

dom.offsetParent 返回最近的有定位的父级,如无,返回body, body.offsetParent 返回null

让滚动条滚动

window上有三个方法 scroll(),scrollTo(),scrollBy();

三个方法功能类似,用法都是将x,y坐标传入。即实现让滚动轮滚动到当前位置。

区别:scrollBy()会在之前的数据基础之上做累加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值