百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

JavaScript HTML DOM 事件之鼠标事件

myzbx 2025-01-10 15:40 15 浏览

双份美女,双份快乐!好久没更新了。

上次我们介绍了JavaScript HTML DOM 事件的几个常见类别。今天我们详细介绍下鼠标相关的事件。

事件

描述

属于

on

mousedown

当用户在元素上按下鼠标按钮时,发生此事件。

MouseEvent

on

mouseenter

当指针移动到元素上时,发生此事件。

MouseEvent

on

mouseleave

当指针从元素上移出时,发生此事件。

MouseEvent

on

mousemove

当指针在元素上方移动时,发生此事件。

MouseEvent

on

mouseout

当用户将鼠标指针移出元素或其中的子元素时,发生此事件。

MouseEvent

on

mouseover

当指针移动到元素或其中的子元素上时,发生此事件。

MouseEvent

on

mouseup

当用户在元素上释放鼠标按钮时,发生此事件。

MouseEvent

on

click

当用户单击元素时发生此事件。

MouseEvent

on

contextmenu

当用户右键单击某个元素以打开上下文菜单时,发生此事件。

MouseEvent

on

dblclick

当用户双击元素时发生此事件。

MouseEvent


我们一个一个来介绍吧

  • onmousedown鼠标事件

当用户在元素上按下鼠标按钮时,发生此事件。

我们在网页上测试一下,我们点击id='header'的<div>节点试试看,让弹出按下鼠标的提示。代码如下

document.getElementById('header').onmousedown = function() {
    alert('鼠标按钮被按下!');
};

当我们在上图标红的框内点击鼠标(不论左键右键还是中键)时,就会弹出了按下鼠标的提示。

  • onmouseenter鼠标事件

当指针移动到元素上时,发生此事件。

我们还是以上面的位置进行测试吧,把鼠标移动到id='header'的<div>节点上,让弹出鼠标已到达战场。

document.getElementById('header').onmouseenter = function() {
    alert('鼠标已到达战场!');
};

测试结果没问题,鼠标移动到指定区域就会弹出提示。

  • onmouseleave鼠标事件

当指针从元素上移出时,发生此事件。

还是用id='header'的<div>节点来测试,当鼠标从节点移出时,弹出鼠标已离开战场的提示。

document.getElementById('header').onmouseleave= function() {
    alert('鼠标已离开战场!');
};

我们看到会有两个提示,一个是移入提示,一个是移出提示。


  • onmousemove鼠标事件

当指针在元素上方移动时,发生此事件。

我们换一个元素节点试试这个功能,我们选择id='js_appmsg_account'的<div>节点试试,在该节点上移动时,输出 在该节点上移动。我们看看效果

document.getElementById('js_appmsg_account').onmouseout= function() {
    console.log('鼠标在该节点上移动!');
};

我们在红框区域移动时,console界面就会不断输出 鼠标在该节点上移动的提示。

  • onmouseout鼠标事件

当用户将鼠标指针移出元素或其中的子元素时,发生此事件。

我们还是用id='js_appmsg_account'的<div>节点测试,移出时打印出移出该节点。


document.getElementById('js_appmsg_account').onmouseout= function() {
    console.log('鼠标移出该节点!');
};

可以看到,打印出的提示 显示了在该节点上移动后又移出的过程。

  • onmouseover鼠标事件

当指针移动到元素或其中的子元素上时,发生此事件。

我们还是id='js_appmsg_account'的<div>节点,当鼠标在这个节点上时,输出 鼠标在该节点上。我们看看效果。

document.getElementById('js_appmsg_account').onmouseover= function() {
    console.log('鼠标在该节点上!');
};

看看右下角打印出的提示,我们可以看到鼠标移入到该节点,然后在该节点上移动后又移出该节点的一整个移动过程。

  • onmouseup鼠标事件

当用户在元素上释放鼠标按钮时,发生此事件。

我们还是用id='js_appmsg_account'的<div>节点,我们没有设置在该节点按鼠标的操作,只设置释放鼠标按钮时,打印出 已松开鼠标按钮 的提示

document.getElementById('js_appmsg_account').onmouseup= function() {
    console.log('已松开鼠标按钮!');
};

可以看到鼠标移动到该节点然后在该节点上移动,松开鼠标按钮后移出该节点的动作。

  • onclick鼠标事件

当用户单击元素时发生此事件。

还是用上面的id='js_appmsg_account'的<div>节点,点击该节点 打印出 皮一下很开心

document.getElementById('js_appmsg_account').onclick= function() {
    console.log('皮一下很开心');
};

可以发现 鼠标的 onclick事件是在onmouseup事件发生之后执行的。我们再添加个onmousedown事件测试下看看看效果,如下图,按下按钮的onmousedown的事件先执行然后是onmouseup事件,最后是onclick事件。

  • oncontextmenu鼠标事件

当用户右键单击某个元素以打开上下文菜单时,发生此事件。

document.getElementById('js_appmsg_account').oncontextmenu= function() {
    console.log('右键菜单');
};

可以看到右键弹出菜单时 打印出了 右键菜单的提示。

  • ondblclick鼠标事件

当用户双击元素时发生此事件。

我们再试试双击按钮的功能。双击id='js_appmsg_account'的<div>节点时 打印出 双击了该节点 的提示。

document.getElementById('js_appmsg_account').ondblclick= function() {
    console.log('双击了该节点');
};

嗯,答应了 双击了该节点的提示。

好了 ,今天我们就大概介绍了一下JavaScript HTML DOM 鼠标事件的几个常用操作。下次我们再讲avaScript HTML DOM 键盘事件的常用操作。

相关推荐

以文本的方式绘制简单的SVG流程图——flowchart.js

介绍flowchart.js是在浏览器和终端中运行的流程图DSL和SVG渲染。节点和连接是分别定义的,因此可以重复使用节点,并可以快速更改连接。也可以在DSL中对节点和连接器样式进行细微的更改。Git...

全国首套构网型SVG在木垒投运

中新网新疆新闻1月5日电(翟文辉)12月29日,全国首套构网型SVG在新疆木垒华电220千伏四十个井子汇集站并网,本项目是新疆电网继阿克陶构网型储能后又一次构网型支撑项目示范。为全面响应国家“双碳”...

Popmotion – 小巧,灵活的 JS 运动引擎

Popmotion是一个只有12KB的JavaScript运动引擎,可以用来实现动画,物理效果和输入跟踪。原生的DOM支持:CSS,SVG,SVG路径和DOM属性的支持,开箱即用。Popmoti...

零基础教你学前端——43、初识SVG

解决网站图标问题的最佳方案——SVG!SVG是一种基于XML语法的图像格式,英文全称是:ScalableVectorGraphics,即可缩放矢量图,是W3C的一项建议。我们用手机拍摄...

2.3 文件格式全解:PSD/JPG/PNG/SVG/GIF

2.3文件格式全解:PSD/JPG/PNG/SVG/GIF一、文件格式的核心意义文件格式是数字图像的存储规则,决定了:-信息保留程度(图层/透明度/动画)-压缩方式与画质损失-跨平台兼容性-...

vite v6.3.2 发布!HMR 优化+CSS 增强+稳定性提升,前端开发再提速!

前言:Vite6.3.2来了!2025年4月18日,Vite团队正式发布了v6.3.2版本!虽然是一个小版本更新,但修复了多个关键问题,并带来了性能优化和稳定性提升,让开发体验更丝滑!如果你还...

一篇文章带你了解SVG 蒙版(Mask)

SVG蒙版功能可将蒙版应用于SVG形状。蒙版可确定SVG形状的哪些部分可见,以及具有什么透明度。运行效果可以将SVG蒙版视为剪切路径的更高级版本。一、简单的蒙版代码解析:本示例使用ID=mask1定义...

SVG实现的流程图绘制

一、项目简介使用SVG技术实现的流程图绘制二、实现功能流程图块生成、连线、拖拽产生相应的xml和xpdl导入导出json数据放大缩小功能保存操作(选择、自动插入、开始结束、普通活动、子活动、块活动、路...

解锁国内 404 页面:Next.js 设置指南和 33 个有趣 SVG 资源分享

前言当我们访问网站时,如果访问到不存在的路径时,会出现404错误。为了避免给访问者带来不良体验,设计网站时通常会在页面上展示“404页面不存在”的提示,并引导用户进行返回首页等操作。因此在建立网...

交互设计师做好动画后,提交给开发的文档有哪些?

谢邀!简单的说一下自己的看法。首先从制作动画开始。目前制作动画的方式主要有:Gif动画视频动画Web动画,而Web动画又包括:CSS动画、JS动画(Canvas动画、原生JS动画API)、SVG动画等...

Motion for Vue:为Vue量身定制的强大动画库

在前端开发中,动画效果是提升用户体验的重要手段。Vue生态系统中虽然有许多动画库,但真正能做到高性能、易用且功能丰富的并不多。今天,我们要介绍的是MotionforVue(motion-v),...

Web开发人员的福音!8个实用的SVG工具

SVG可缩放矢量图形(ScalableVectorGraphics)是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式。SVG是W3C在2000年8月制定的一种新的二维矢量图形格式...

一键画波浪线、一键多图片调色?这3个网站好玩到停不下来

作为一个经常收集网站的PPT设计师,无意中发现了一些超级有趣的网站。只要你动手能力足够强,就一定会利用它做出创意作品。不说废话,直接进入主题。1、炫酷的光线绘画网站http://weavesilk.c...

vite 6.2.5 更新速递:告别SVG路径Bug,构建效率再提升!

Vite6.2.5更新公告2025年4月3日,Vite团队正式发布了Vite6.2.5版本!此次更新虽然是一个小版本迭代,但修复了一个关键问题,涉及SVG文件路径检查,对前端开发者尤...

DrawSVG – SVG 路径动画 jQuery 插件

jQueryDrawSVG使用了jQuery内置的动画引擎实现SVG路径动画,用到了stroke-dasharray和stroke-dashoffset属性。DrawSVG是完全...