如何在 Chrome 中跨区域捕捉鼠标事件?

如何在 chrome 中跨区域捕捉鼠标事件?

巧用 event capture 实现跨区域鼠标事件捕捉

浏览器的区域外事件捕捉因 setcapture() 方法不支持 chrome 浏览器和 window.captureevents() 方法的废弃而变得复杂。本文将提供一种解决方法,让进度条的拖动事件在拖出进度条区域时仍然触发鼠标移动事件。

以下代码实现了该解决方案:

const button = document.querySelector('button');button?.addEventListener('mousedown', handleMoveStart);let startPoint: { x: number; y: number } | undefined;let originalOnSelectStart: Document['onselectstart'] = null;function handleMoveStart(e: MouseEvent) {  e.stopPropagation();  if (e.ctrlKey || [1, 2].includes(e.button)) return;  window.getSelection()?.removeAllRanges();  e.stopImmediatePropagation();  window.addEventListener('mousemove', handleMoving);  window.addEventListener('mousedown', handleMoveEnd);  originalOnSelectStart = document.onselectstart;  document.onselectstart = () => false;  startPoint = { x: e.x, y: e.y };}function handleMoving(e: MouseEvent) {  if (!startPoint) return;  // DO Something}function handleMoveEnd(e: MouseEvent) {  window.removeEventListener('mousemove', handleMoving);  window.removeEventListener('mousedown', handleMoveEnd);  startPoint = undefined;  if (document.onselectstart !== originalOnSelectStart) {    document.onselectstart = originalOnSelectStart;  }}

该代码遵循以下步骤:

捕获按钮上的鼠标按下事件。阻止鼠标选择文本和捕获后续的鼠标移动事件。存储鼠标按下时的起始坐标。在鼠标移动时,执行所需的动作(例如,更新进度条)。在鼠标释放时,解除鼠标事件监听器并重置起始坐标。

通过这种方式,即使将鼠标拖出进度条区域,也可以连续触发鼠标移动事件,从而实现跨区域的事件捕捉。

以上就是如何在 Chrome 中跨区域捕捉鼠标事件?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1630577.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
如何使用 CSS 为字体添加镂空描边?
上一篇 2025年12月24日 13:24:35
如何修复 CSS :hover 高亮错误导致单元格高亮的问题?
下一篇 2025年12月24日 13:24:42

相关推荐

  • 目前的手机处理器排名安卓(现在性能的手机)

    目前的手机处理器排名安卓(当前性能的手机)实际上是由两家公司所掌握:高通和联发科。高通是目前市面上性能最强的手机处理器厂商之一,而联发科则是主打性价比,为中低端手机提供处理器。在最近的排名中,高通的snapdragon 865和865+名列前茅,性能表现优异。而联发科的dimensity 1000+…

    2026年8月29日
    000
  • win11怎么关闭内存完整性功能_Win11内存完整性关闭操作步骤

    关闭内存完整性可解决Win11性能问题,首先通过安全中心核心隔离设置关闭并重启;若无效,用管理员命令提示符执行bcdedit /set hypervisorlaunchtype off关闭VBS后重启;若开关灰色,则需删除注册表HypervisorEnforcedCodeIntegrity下enab…

    2026年8月29日
    000
  • 雪花算法遇上时钟回拨:直接沿用上次时间戳真的靠谱吗?

    雪花算法遭遇时钟回拨:直接沿用上次时间戳安全吗? 雪花算法是分布式系统中常用的全局唯一ID生成算法。但当系统时钟发生回拨时,其唯一性将受到威胁。本文分析一种应对时钟回拨的策略:直接使用上次时间戳,并评估其可行性。 有人提出,当检测到时钟回拨时,将当前时间戳替换为上次生成ID的时间戳,保持算法其余部分…

    2026年8月29日
    000
  • 双模秒切,体验跃迁!飞利浦EVNIA双模游戏显示器27M2N6801M王者降临!

    双模秒切,体验跃迁!飞利浦EVNIA双模游戏显示器27M2N6801M王者降临!双模秒切,体验跃迁!飞利浦EVNIA双模游戏显示器27M2N6801M王者降临!双模秒切,体验跃迁!飞利浦EVNIA双模游戏显示器27M2N6801M王者降临!双模秒切,体验跃迁!飞利浦EVNIA双模游戏显示器27M2N6801M王者降临!

    当沉浸式画质与电竞级流畅无法共存,EVNIAMini LED双模游戏显示器27M2N6801M以破界之姿革新而来!全新搭载4K+160Hz/FHD+320Hz双模显示引擎,将视觉震撼与操作跟手性推向全新高度。心念所动间,即可在电影级3A世界与分秒必争的电竞战场中无缝穿梭,开启属于硬核玩家的性能自由时…

    2026年8月29日 用户投稿
    000
  • 手机淘宝的装修技巧是什么?有哪些你知道吗?

    优化手机淘宝店铺需从头像名称、店招设计、首页托管、视觉风格及导航布局入手。1、使用透明背景PNG格式头像,名称控制在10字内并嵌入关键词;2、店招采用5秒内动态内容,突出LOGO与广告语,定期更新;3、通过千牛后台开启智能托管,按经营特性选择模块避免冗余;4、统一主色调不超过三种,商品图以大图展示,…

    2026年8月29日
    100
  • mysql列转行函数是什么

    mysql列转行函数是什么mysql列转行函数是什么mysql列转行函数是什么mysql列转行函数是什么

    在mysql中,列转行函数是“group_concat()”函数;该函数用于将非空列值按照分组条件进行合并并最终返回,如果其中有空值则返回的结果是空,语法为“select group_concat(name  separator ‘;’)列名 from 表名;”。 本教程操作…

    2026年8月29日 用户投稿
    000
  • 如何让你的PrestaShop商店符合GDPR?prestashop/psgdpr库来助你一臂之力

    可以通过一下地址学习composer:学习地址 在管理一个prestashop商店时,我遇到了一个棘手的问题:如何确保我的商店符合欧盟的《通用数据保护条例》(gdpr)?这个法规要求商店在处理客户数据时必须遵循严格的规则,否则可能会面临高额的罚款。我尝试了多种方法,但都未能全面覆盖gdpr的所有要求…

    用户投稿 2026年8月29日
    000
  • swoole如何启动最新教程

    启动 Swoole 最新版本方案:1. 安装 Swoole;2. 配置 PHP 扩展;3. 重启 PHP;4. 创建 Websocket 服务器进程;5. 创建 HTTP 服务器进程。 Swoole 最新启动教程 问题:如何使用最新版本启动 Swoole? 回答: 启动 Swoole 最新版本需要遵…

    2026年8月29日
    000
  • linux是嵌入型系统么

    linux是嵌入型系统。linux和嵌入式系统属于相互交叉,嵌入式系统的发展让linux应用更加广泛,linux的开源、可定制、灵活性也适合嵌入式系统。 首先大家应该都知道Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操…

    2026年8月29日
    000
  • 崩坏星穹铁道FGO联动怎么玩-崩坏星穹铁道FGO联动玩法

    崩坏星穹铁道在3.4版本中将与fgo展开联动,本次联动不仅可以免费获取五星角色及光锥,还包含多项精彩活动。那么这次联动究竟有哪些具体内容呢?一起来了解一下吧。 崩坏星穹铁道FGO联动玩法介绍 1、卡池 联动跃迁「圣剑辉烈之誓」&「王的诞生」活动期间,限定联动5星角色「Saber(毁灭·风)」…

    2026年8月29日
    000
  • Soul怎么查看谁来过我的主页_Soul访客记录查看路径

    1、打开Soul应用进入个人主页,点击“看过我”可查看近期访问者头像与昵称;2、通过隐私设置中的“屏蔽来访记录的人”可查看隐藏访问痕迹的用户名单;3、部分访客信息需开通会员或完成任务解锁,权限生效后即可显示完整访客列表。 如果您想了解哪些用户浏览过您的Soul主页,可以通过应用内的访客记录功能进行查…

    2026年8月29日
    000
  • 目前的手机直播声卡是什么(性价比的手机声卡)

    php小编新一为大家介绍目前市场主流的手机直播声卡。随着手机直播的普及,手机直播声卡也逐渐成为主播的必备装备之一。手机直播声卡的作用是为主播提供更好的音效处理,让直播的声音更加清晰、自然。目前市面上的手机直播声卡不仅在性价比上进行了不同的分级,而且在功能、适用范围、操作难易度等方面也有所区别,因此需…

    2026年8月29日
    000
  • 拼多多双11活动打几折?拼多多双11活动打几折优惠

    2025年拼多多双11优惠力度大,通过百亿补贴叠加消费券可低至2.5折,限时秒杀提供5折爆款,跨店满减如满300减50再降10%-20%,砍价免费拿和万人团可实现0元或超低价购。 如果您在寻找2025年拼多多双11期间的折扣力度,可能会发现实际到手价远低于商品原价,这得益于平台多重补贴叠加。以下是获…

    2026年8月29日
    000
  • win10怎么打开远程桌面_win10开启远程桌面连接的教程

    如果您希望从另一台设备访问您的 Windows 10 电脑,可能需要启用远程桌面功能。以下是开启和使用该功能的具体步骤: 本文运行环境:Dell XPS 13,Windows 10。 一、检查系统版本并启用远程桌面 Windows 10 的远程桌面功能仅在专业版、企业版和教育版中可用,家庭版不支持。…

    2026年8月29日
    100
  • mysql远程连接不上怎么办

    解决方法:1、利用“select host,user from user;”查看root用户的可连接权限主机范围;2、利用“update user set host=‘%’ where user=‘root’;”修改root用户的修改权限的主机范围是任一主机;3、利用“systemctl resta…

    2026年8月29日
    100
  • win10怎么管理右键菜单?win10管理右键菜单的方法介绍

    大家好,今天为大家带来一些关于如何在Win10系统中管理右键菜单的小技巧,让你的电脑使用更加高效。相信很多朋友都遇到过这样的情况:当你在桌面或文件上点击右键时,弹出的菜单里有很多不常用的选项,而真正需要的功能却不容易找到。那么接下来就让我们一起解决这个问题吧! 首先,我们需要借助一个小工具——“右键…

    2026年8月29日
    100
  • Linux文件系统fsck命令详解

    fsck是Linux中检查修复文件系统的工具,用于系统异常断电、磁盘错误等导致文件系统损坏时,通过卸载分区后使用如-a、-y、-n等参数进行自动或只读检查修复,可结合tune2fs设置周期检测,操作前需备份数据并确保设备未挂载以避免风险。 fsck(File System Consistency C…

    2026年8月29日
    000
  • 数智共振!三七互娱与华为构筑文娱产业新生态

    当人工智能、5g与云计算等数字技术以前所未有的方式重构文娱产业格局,沉浸式体验、个性化推荐以及全球化分发逐渐成为新常态,数字基建已成为推动文娱产业升级、连接全球用户的关键动力。 在数智文娱创新领域,总部设于广州的全球知名文娱企业三七互娱,依托“文化+科技”双轮驱动战略,在智慧办公空间建设、全球文化I…

    2026年8月29日
    000
  • swoole视频教程哪里有?

    SWoole 视频教程获取途径包括:1. 官方网站; 2. B 站; 3. YouTube; 4. 网易云课堂; 5. 掘金; 6. 慕课网; 7. 极客时间; 8. SWoole 微信公众号; 9. SWoole 社区论坛。 SWoole 视频教程获取途径 官方网站 [SWoole 官方网站](h…

    2026年8月29日
    000
  • Linux是用什么语言编写的

    linux内核大部分由C语言编写,另一部分由汇编语言编写。linux的一些组件系统和附加应用程序大部分由C、C++、Python、perl等语言编写。 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要…

    2026年8月29日
    000

发表回复

登录后才能评论
关注微信