什么是window对象
所有浏览器都支持 window 对象,它表示浏览器窗口。所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。全局变量是 window 对象的属性,全局函数是 window 对象的方法,甚至 HTML DOM 的 document 也是 window 对象的属性之一:
window对象的常见事件
-
onload,当页面加载完毕后执行该方法。 a标签的超链接、 F5或者刷新按钮(强制刷新)、前进后退按钮。
注:火狐有个特点,有个“往返缓存”,这个缓存中不仅保存这页面数据,还保存了DOM和JavaScript的状态;实际上就是将整个页面都保存再了内存里,所以此时后退按钮就不能刷新页面了。
-
onpageshow 这个事件再页面显示时触发,无论页面是否来自缓存,再重新加载页面中, pageshow会再load事件触发后再触发,更具事件对象中的persisted来判断是否缓存中的页面触发的pageshow事件,注意这个事件给window添加。
-
onDOMContentLoaded 当DOM元素加载完毕后就执行
-
onresize 调整窗口大小加载该事件,只要窗口大小发生改变,就会触发这个事件,我们经常利用这个事件完成响应式布局,使用 window.innerWidth/Height获得当前屏幕的宽度/高度
-
devicePixelRatio 获得当前的物理像素比。
window 监听事件
- window.addEventListener('scroll', fn); 页面滚动的时候执行函数fn,如页面即将滚动到底部,动态加载后面的数据。
function addEvent() {
window.addEventListener('scroll', function() {
// 可视窗口高度
var clientHeight = document.documentElement.clientHeight;
// 滚动区域高度
var scrollHeight = document.body.scrollHeight;
// 页面滚过可视窗顶部高度
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
var proDis = 30;
// 页面即将出现在可视区的时候
if ( (scrollTop + slientHeight) >= (scrollHeight - proDis) ) {
// 获取需要加载的数据
}
})
}