日期:2025年1月25日
作者:Commas
签名:(ง •_•)ง 积跬步以致千里,积小流以成江海……
注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^
1.01365 = 37.7834;0.99365 = 0.0255
1.02365 = 1377.4083;0.98365 = 0.0006
文章目录
- 一、前言
- 二、常见的事件类型
- (1)用户界面事件 (UI Events)
- (2)焦点事件 (Focus Events)
- (3)鼠标事件 (Mouse Events)
- (4)键盘事件 (Keyboard Events)
- (5)输入事件 (Input Events)
- (6)触摸事件 (Touch Events)
- (7)滚动事件 (Scroll Events)
- (8)动画事件 (Animation Events)
- (9)过渡事件 (Transition Events)
- 三、实际应用案例
- (1)用户界面事件 (UI Events)
- (2)焦点事件 (Focus Events)
- (3)鼠标事件 (Mouse Events)
- (4)键盘事件 (Keyboard Events)
- (5)输入事件 (Input Events)
- (6)触摸事件 (Touch Events)
- 四、结语

一、前言
在 Web 开发的世界里,事件是用户与网页交互的桥梁。JavaScript 为我们提供了丰富的事件类型,使得开发者能够轻松地响应用户的行为,创造出丰富多样的交互体验。今天,我们就来全面了解一下这些事件类型及其应用。
二、常见的事件类型
JavaScript 中有许多常见的事件类型,它们用于处理各种用户交互和浏览器行为。以下是一些常见的事件类型及其简要描述:
(1)用户界面事件 (UI Events)
用户界面事件涉及页面加载、卸载和调整大小等操作。
load:当资源(如图像、脚本或整个文档)被加载完成时触发。常用于确保在DOM完全加载后执行脚本。unload:当资源被卸载时触发,例如用户离开页面。abort:当加载被取消时触发,如图像加载中断。error:发生错误时触发,例如无法加载图像。select:用户选择文本框(input或textarea)中的文本时触发。resize:窗口或框架大小调整时触发。scroll:用户滚动元素时触发。
(2)焦点事件 (Focus Events)
焦点事件关注于元素获得或失去焦点的情况。
blur:元素失去焦点时触发。focus:元素获得焦点时触发。focusin:元素即将获得焦点时触发,会冒泡。focusout:元素即将失去焦点时触发,会冒泡。
(3)鼠标事件 (Mouse Events)
鼠标事件是用户使用鼠标与页面交互时触发的。
click:用户点击元素时触发。dblclick:用户双击元素时触发。mousedown:用户按下鼠标按钮时触发。mouseup:用户释放鼠标按钮时触发。mouseover:鼠标指针移动到元素上时触发。mouseout:鼠标指针移出元素时触发。mousemove:鼠标指针在元素上移动时触发。mouseenter:鼠标指针进入元素时触发,不会冒泡。mouseleave:鼠标指针离开元素时触发,不会冒泡。
(4)键盘事件 (Keyboard Events)
键盘事件涉及用户与键盘的交互。
keydown:用户按下键盘上的任意键时触发。keyup:用户释放键盘上的键时触发。keypress:用户按下并释放一个字符键时触发(已废弃)。
(5)输入事件 (Input Events)
输入事件关注于表单元素的值变化。
input:input、select或textarea元素的值被修改时触发。change:元素的值被修改并失去焦点时触发。
(6)触摸事件 (Touch Events)
触摸事件适用于触摸屏设备。
touchstart:用户触摸屏幕时触发。touchmove:用户在屏幕上移动手指时触发。touchend:用户从屏幕上移开手指时触发。touchcancel:触摸事件被意外中断时触发。
(7)滚动事件 (Scroll Events)
scroll: 当用户或代码滚动元素时触发。
(8)动画事件 (Animation Events)
animationstart: 当 CSS 动画开始时触发。animationend: 当 CSS 动画结束时触发。animationiteration: 当 CSS 动画重复播放时触发。
(9)过渡事件 (Transition Events)
transitionstart: 当 CSS 过渡开始时触发。transitionend: 当 CSS 过渡结束时触发。
三、实际应用案例
JavaScript 事件的使用,可以让我们的 Web 应用更加生动和互动,以下是一些事件的实际应用案例与大家分享下:
(1)用户界面事件 (UI Events)
示例:页面加载完成后做相应的操作。
window.addEventListener('load', function() {alert('Hello World!');
});
当页面完全加载后,会弹出一个Hello World。
(2)焦点事件 (Focus Events)
示例:输入框获得焦点时改变边框颜色
document.querySelector('#myInput').addEventListener('focus', function() {this.style.borderColor = 'blue';
});
当用户点击输入框时,输入框的边框颜色会变为蓝色。
(3)鼠标事件 (Mouse Events)
实际案例:实现图片的鼠标悬停放大效果
document.querySelector('#myImage').addEventListener('mouseover', function() {this.style.transform = 'scale(1.1)';this.style.transition = 'transform 0.3s ease';
});document.querySelector('#myImage').addEventListener('mouseout', function() {this.style.transform = 'scale(1)';
});
当鼠标悬停在图片上时,图片会放大10%,并在鼠标移开后恢复原大小。
(4)键盘事件 (Keyboard Events)
示例:监听键盘事件实现快捷键功能
document.addEventListener('keydown', function(event) {if (event.ctrlKey && event.key === 's') {event.preventDefault();saveDocument();}
});function saveDocument() {alert('文档已保存!');
}
在这个示例中,我们阻止了默认的Ctrl+S保存行为,并实现了自定义的保存文档功能。
(5)输入事件 (Input Events)
实际案例:实时显示输入框中的字符数
document.querySelector('#myTextarea').addEventListener('input', function() {document.querySelector('#charCount').textContent = this.value.length;
});
在这个示例中,我们实时更新一个元素来显示用户在文本区域输入的字符数。
(6)触摸事件 (Touch Events)
示例:实现简单的触摸滑动效果
let startX;document.querySelector('#myElement').addEventListener('touchstart', function(event) {startX = event.touches[0].clientX;
});document.querySelector('#myElement').addEventListener('touchmove', function(event) {const currentX = event.touches[0].clientX;const diffX = currentX - startX;this.style.transform = `translateX(${diffX}px)`;
});document.querySelector('#myElement').addEventListener('touchend', function(event) {// 可以在这里处理触摸结束的逻辑
});
在这个例子中,我们通过触摸事件实现了元素的滑动效果。
四、结语
了解和掌握 JavaScript 中的事件类型对于前端开发者来说至关重要。通过合理使用这些事件,我们可以创建出更加丰富和响应式的用户界面。希望本文能够帮助您更好地理解这些事件类型,并在实际项目中灵活运用。
参考文章:
- 《MDN Web docs》- 事件介绍
- 《MDN Web docs》- 事件参考
版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/145339699