baozhengrui

导航

window的事件

在 JavaScript 中,window 对象代表浏览器的窗口,而 window 上的各种事件可以用于响应用户的交互或者浏览器的状态变化。例如,window 上有很多内置的事件,比如页面加载、窗口尺寸变化、滚动、键盘输入等。

下面是一些常见的 window 事件及其使用方式:

1. load 事件:页面加载完成时触发

load 事件会在所有页面内容(包括图片、脚本、样式等)加载完成时触发。通常用于确保页面完全加载后执行某些操作。


window.addEventListener('load', function() {
  console.log('页面完全加载完成');
});

2. resize 事件:窗口大小变化时触发

当浏览器窗口的大小发生变化时,resize 事件会被触发。常用于响应式布局中,根据窗口大小调整页面内容。


window.addEventListener('resize', function() {
  console.log('窗口大小发生了变化');
});

3. scroll 事件:窗口滚动时触发

scroll 事件在页面或元素的滚动条发生滚动时触发。可以用来监听页面的滚动位置,并实现一些滚动效果或懒加载功能。


window.addEventListener('scroll', function() {
  console.log('页面发生了滚动');
});

4. focus 事件:窗口获取焦点时触发

focus 事件在窗口被激活(获得焦点)时触发。可以用来检测用户是否重新切换到当前浏览器窗口。


window.addEventListener('focus', function() {
  console.log('窗口获取了焦点');
});

5. blur 事件:窗口失去焦点时触发

blur 事件会在窗口失去焦点时触发。例如,当用户切换到其他浏览器标签时触发。


window.addEventListener('blur', function() {
  console.log('窗口失去了焦点');
});

6. beforeunload 事件:页面卸载前触发

beforeunload 事件会在用户尝试离开页面或关闭浏览器窗口时触发。它可以用来给用户提供确认离开的提示。


window.addEventListener('beforeunload', function(event) {
  event.preventDefault();  // 有些浏览器要求调用 preventDefault()
  event.returnValue = '';   // 设置返回值
  console.log('即将离开页面');
});

7. unload 事件:页面卸载时触发

unload 事件在页面卸载时触发,通常用于清理资源或者记录离开页面的数据。不过,现代浏览器对 unload 事件的支持已经越来越弱,因此更推荐使用 beforeunload 事件。


window.addEventListener('unload', function() {
  console.log('页面即将被卸载');
});

8. error 事件:窗口或资源加载错误时触发

error 事件可以用于监听 JavaScript 错误、图片加载错误等。它常用于错误日志的捕捉和处理。


window.addEventListener('error', function(event) {
  console.log('发生了错误:', event.message);
});

9. storage 事件:本地存储发生变化时触发

storage 事件在浏览器的 localStorage 或 sessionStorage 数据发生变化时触发。通常用于多个标签页之间的同步。


window.addEventListener('storage', function(event) {
  console.log('本地存储发生了变化:', event.key, event.newValue);
});

10. pointer 事件(pointerdown、pointermove、pointerup 等)

pointer 事件是一个新的事件模型,用于捕捉触摸、鼠标和其他指针设备的事件。可以用来替代传统的 mouse 事件(如 mousedown、mousemove、mouseup)和 touch 事件(如 touchstart、touchmove、touchend)。


window.addEventListener('pointerdown', function(event) {
  console.log('指针按下', event);
});

window.addEventListener('pointermove', function(event) {
  console.log('指针移动', event);
});

window.addEventListener('pointerup', function(event) {
  console.log('指针抬起', event);
});

总结:

window 对象有很多内建事件,适用于监听页面和浏览器窗口的各种状态变化。
常见的事件包括 load、resize、scroll、focus、blur、beforeunload、unload、error、storage 等。
可以使用 addEventListener 方法为这些事件注册回调函数,实时响应用户的行为或浏览器的状态变化。

通过这些事件,你可以更灵活地控制浏览器窗口的行为以及用户与页面的互动。

posted on 2024-11-06 17:25  芮艺  阅读(8)  评论(0编辑  收藏  举报