导航


HTML

CSS

JavaScript

浏览器 & 网络

版本管理

框架

构建工具

TypeScript

性能优化

软实力

算法

UI、组件库

Node

冷门技能

JavaScript 的事件流模型有哪些?

如何阻止事件冒泡?

function stopBubble(e) {
  if (e.stopPropagation) {
    e.stopPropagation()
  } else {
    window.event.cancelBubble = true;
  }
}

如何阻止事件默认行为?

function stopDefault(e) {
  if (e.preventDefault) {
    e.preventDefault();
  } else {
    window.event.returnValue = false;
  }
}

⭐ 什么是事件委托?

当子元素都需要绑定相同事件时,可以将事件绑在父元素上,优点有:

鼠标事件有哪些?

事件 说明
click 单机鼠标左键触发
dbclick 双击鼠标左键触发
mousedown 单机鼠标任意一个按键都触发
mouseup 松开任意鼠标按键时触发
mouseover 鼠标指针出某个元素到另一个元素上时触发
mouseout 鼠标指针位于某个元素上且将要移出元素边界时触发
mousemove 鼠标在某个元素上时持续发生
mouseenter 鼠标进入某个元素边界时触发
mouseleave 鼠标离开某个元素边界时触发

键盘事件有哪些?

注明:event 对象上的 keyCode 属性,是按下的按键的 ASCLL 值,通过这个值可辨别是按下哪个按键。ASCLL 表在此 ASCII 码一览表,ASCII 码对照表

事件 说明
onkeydown 某个键盘按键被按下时触发
onkeyup 某个键盘按键被松开时触发
onkeypress 某个按键被按下时触发,不监听功能键,如ctrl,shift

触摸事件有哪些?

移动端的触摸事件与鼠标事件不同,它们专为触摸屏设备设计,常用于处理手指的滑动、点击等交互。以下是常见的移动端触摸事件,按照名称、触发条件和用途进行了整理。

事件名称 触发条件 用途
touchstart 当手指触摸屏幕时触发。 记录初始的触摸点,开始监测触摸操作。
touchmove 当手指在屏幕上滑动时持续触发。 检测触摸点的移动,用于拖动、滑动等操作。
touchend 当手指离开屏幕时触发。 结束触摸事件,处理抬手后的操作,比如点击。
touchcancel 触摸事件被中断时触发,例如弹窗出现或触摸点离开屏幕。 取消触摸操作的处理,通常用于清理数据。

事件说明:

  1. touchstart:类似于鼠标的 mousedown,当用户手指接触屏幕时触发。可以用来记录触摸的起点,或开始处理滑动的逻辑。
  2. touchmove:类似于鼠标的 mousemove,当用户手指在屏幕上滑动时触发。常用于处理拖动或滑动手势。
  3. touchend:类似于鼠标的 mouseup,当用户手指离开屏幕时触发。可以用来检测触摸操作的结束,常用于处理点击事件或者结束滑动。
  4. touchcancel:当系统取消触摸事件时触发,可能是因为触摸超出了屏幕边缘或其他系统中断。

触摸事件中的重要属性:

这些触摸事件为移动设备提供了灵活的交互方式,允许开发者通过手势进行更加丰富的操作,例如滑动、缩放、旋转等。

JS 中鼠标事件的各个坐标?

属性 说明 兼容性
offsetX 以当前的目标元素左上角为原点,定位x轴坐标 除Mozilla外都兼容
offsetY 以当前的目标元素左上角为原点,定位y轴坐标 除Mozilla外都兼容
clientX 以浏览器可视窗口左上角为原点,定位x轴坐标 都兼容
clientY 以浏览器可视窗口左上角为原点,定位y轴坐标 都兼容
pageX 以doument对象左上角为原点,定位x轴坐标 除IE外都兼容
pageY 以doument对象左上角为原点,定位y轴坐标 除IE外都兼容
screenX 以计算机屏幕左上顶角为原点,定位x轴坐标(多屏幕会影响) 全兼容
screenY 以计算机屏幕左上顶角为原点,定位y轴坐标 全兼容
layerX 最近的绝对定位的父元素(如果没有,则为 document 对象)左上顶角为元素,定位 x 轴坐标 Mozilla 和 Safari
layerY 最近的绝对定位的父元素(如果没有,则为 document 对象)左上顶角为元素,定位 y 轴坐标 Mozilla 和 Safari

target 和 currentTarget 的区别?

⭐ JS 中如何将页面重定向到另一个页面?