You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据视频播放状态切换悬停光标样式?

解决方案:根据视频播放状态切换自定义光标

方案一:CSS + 状态类(推荐,实现结构与样式分离)

通过给视频容器(或<video>元素本身)添加状态类,用CSS类来控制不同状态下的光标样式。

  1. 编写CSS规则:
/* 视频暂停时,显示播放样式光标 */
.video-player {
  cursor: url('data:image/png;base64,[你的播放图标base64编码]'), auto;
}

/* 视频播放时,显示暂停样式光标 */
.video-player.is-playing {
  cursor: url('data:image/png;base64,[你的暂停图标base64编码]'), auto;
}
  1. 用JavaScript控制状态类的切换:
const video = document.querySelector('.video-player');

// 视频开始播放时添加状态类
video.addEventListener('play', () => {
  video.classList.add('is-playing');
});

// 视频暂停时移除状态类
video.addEventListener('pause', () => {
  video.classList.remove('is-playing');
});

方案二:直接用JavaScript修改cursor属性

如果不想额外添加CSS类,也可以直接在事件触发时修改元素的style.cursor属性:

const video = document.querySelector('.video-player');
// 提前定义好两个状态的光标URL
const playCursor = 'url("data:image/png;base64,[播放图标base64编码]"), auto';
const pauseCursor = 'url("data:image/png;base64,[暂停图标base64编码]"), auto';

video.addEventListener('play', () => {
  video.style.cursor = pauseCursor;
});

video.addEventListener('pause', () => {
  video.style.cursor = playCursor;
});

关键注意事项

  • 自定义光标图片尺寸建议控制在32x32px以内,过大的图片可能被浏览器忽略
  • 必须在url()后加上auto作为降级方案,避免光标失效时影响用户操作
  • 如果使用外层容器而非<video>元素,要确保容器没有设置pointer-events: none,否则无法捕获鼠标事件

内容的提问来源于stack exchange,提问作者James

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 08:13:12