每日分享!JavaScript的鼠标事件(11个事件)
鼠标的11个事件
具体的事件解释如下:
- click:按下鼠标(通常是按下主按钮)时触发。
- dblclick:在同一个元素上双击鼠标时触发。
- mousedown:按下鼠标键时触发。
- mouseup:释放按下的鼠标键时触发。
- mousemove:当鼠标在一个节点内部移动时触发。当- 鼠标持续移动时,该事件会连续触发。为了避免性能问题,建议对该事件的监听函数做一些限定,比如限定一段时间内只能运行一次。
- mouseenter:鼠标进入一个节点时触发,进入子节点不会触发这个事件(详见后文)。
- mouseover:鼠标进入一个节点时触发,进入子节点会再一次触发这个事件(详见后文)。
- mouseout:鼠标离开一个节点时触发,离开父节点也会触发这个事件(详见后文)。
- mouseleave:鼠标离开一个节点时触发,离开父节点不会触发这个事件(详见后文)。
- contextmenu:按下鼠标右键时(上下文菜单出现前)触发,或者按下“上下文菜单键”时触发。
- wheel:滚动鼠标的滚轮时触发,该事件继承的是WheelEvent接口。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
div {
margin: 30px;
width: 100px;
height: 100px;
background-color: red;
}
h4 {
color: #fff;
margin: 0;
padding: 0;
}
.box {
margin: 20px;
width: 30px;
height: 30px;
background-color: pink;
}
</style>
</head>
<button id="btn1">click</button>
<button id="btn2">dblclick</button>
<button id="btn3">mousedown</button>
<button id="btn4">mouseup</button>
<div id="btn6">
<h4>mouseenter</h4>
<h4>mouseover</h4>
<div class="box"></div>
</div>
<div id="btn7">
<h4>mouseout</h4>
<div class="box"></div>
</div>
<div id="btn8">
<h4>mouseleave</h4>
<div class="box"></div>
</div>
<div id="btn9">
<h4>contextmenu</h4>
<div class="box"></div>
</div>
<body>
<script>
// 事件1 click : 按下鼠标即可以触发
btn1.addEventListener('click', function () {
alert('click')
})
// 事件2 dblclick : 双击鼠标可以触发事件 notice: 是dblclick
btn2.addEventListener('dblclick', function () {
alert('dbclick')
}, { once: true }) // 加啦once 只会触发一次。。。
// 事件3 mousedown 按下鼠标键时触发 notice:此时我们监听的是对于按钮按下鼠标键才会触发
btn3.addEventListener('mousedown', function () {
alert('mousedown')
})
// 事件4 mouseup // 点击按钮释放鼠标键时才会触发
btn4.addEventListener('mouseup', function () {
alert('btn-mouseup')
})
// 事件4 mouseup // 释放鼠标键时将会触发 那就绑定为document的全局事件
document.addEventListener('mouseup', function () {
alert('mouseup')
}) // notice 在为看来,不要在全局绑定这样的事件,这样的事件一般在函数内去触发
// 事件5 mousemove 鼠标在移动时触发,但是会持续触发。(test 时,也使用去全局触发)
document.addEventListener('mousemove', function () {
// console.log('moving……')
})
// 事件6 鼠标进进入节点的一瞬间会立刻触发,当进入子节点,或者离开时不会触发
btn6.addEventListener('mouseenter', function () {
// console.log('i am comming ^_^')
})
// 事件7 鼠标进入节点会触发这个事件。进入子节点还会触发这个事件
btn6.addEventListener('mouseover', function () {
console.log('i am mouseover')
}) // 注意 这个与mouseenter 相比。会多触发两次 。离开节点进入自节点会触发,离开子节点,进入父级节点还会触发一次
// 事件8 mouseout 鼠标离开节点时触发。当鼠标进入子接点,相当离开父节点,一样会触发该事件。从子节点离开,进入父级节点一样会触发该事件!
btn7.addEventListener('mouseout', function () {
console.log('i am mouseout')
})
// 事件9 mouseleave // 只有在父级节点出去的时候才会触发。不会在子节点中触发
btn8.addEventListener('mouseleave', function () {
console.log('i am mouseleva')
})
// 事件10 contextmenu // 点击右键触发
btn9.addEventListener('contextmenu',function(){
console.log('i am contextmenu')
})
// 事件11 wheel
document.addEventListener('wheel',function(){
console.log('i am mousewheel')
})
</script>
</body>
</html>
总结
- click 事件是指的是,用户在同一个位置完成mousedown动作,在完成mouseup动作。因此呢,执行的顺序分别为,mousedown 首先触发 -后续执行mouseup,然后执行click
- dbclick 事件会在mousedown - mouseup click - 后执行!
- mouseenter 和 mouseover 都是鼠标进入事件触发,但是两者的区别是。前者只触发一次,后者会在子节点上多次触发。
- mouseout mouseleave 都是鼠标离开时候触发。但两者的区别是,前者会在子节点内多次触发。后者只会离开节点时触发。
每日分享!JavaScript的鼠标事件(11个事件)的更多相关文章
- 【转】分享JavaScript监听全部Ajax请求事件的方法
若Ajax请求是由jQuery的$.ajax发起的,默认情况下可以使用 jQuery的Global Ajax Event Handlers监听到Ajax事件,然而我遇到的却是用原生JavaScript ...
- 每日分享!~ JavaScript(拖拽事件)
浏览器的拖拉事件 拖拉(drag)指的是,用户在某个对象上按下鼠标键不放,拖动它到另一个位置,然后释放鼠标键,将该对象放在那里. 拖拉的对象有好几种,包括元素节点.图片.链接.选中的文字等等.在网页中 ...
- 每日分享!~ JavaScript中面试基础--1,数组检测的方式 2.传统事件绑定和W3C标准绑定事件的区别~
javaScript 那些方式中检测数据类型 typeof typeof isNaN // 结果是function 检测数组的几种方式 instanceof arr instanceof Array( ...
- javascript鼠标双击时触发事件大全
javascript事件列表解说 事件 浏览器支持 解说 一般事件 onclick IE3.N2 鼠标点击时触发此事件 ondblclick IE4.N4 鼠标双击时触发此事件 onmousedown ...
- JavaScript一个鼠标滚动事件的实例
<script type="text/javascript" src="./whenReady.js"></script> <!- ...
- IE和Chrome执行javascript对鼠标双击事件的不同响应
最近在用天地图API帮同学做点开发的工作,主要是基于天地图的API实现违法用地举报的在线地图标绘,要实现的效果如下: 由于是基于天地图API的TPolygonTool工具实现面积量测和多边形绘制功能, ...
- JavaScript事件基础-10-2.HTML事件; DOM0级事件; 掌握常用的鼠标与键盘事件 ; 掌握this的指向;
JavaScript事件基础 学习目标 1.掌握什么是事件 2.掌握HTML事件 3.掌握DOM0级事件 4.掌握常用的鼠标与键盘事件 5.掌握this的指向 什么是事件 事件就是文档或浏览器窗口中发 ...
- 前端(十五)—— JavaScript事件:绑定事件方式、事件的冒泡和默认事件、鼠标事件、键盘事件、表单 事件、文档事件、图片事件、页面事件
JS事件:绑定事件方式.事件的冒泡和默认事件.鼠标事件.键盘事件.表单 事件.文档事件.图片事件.页面事件 一.事件的两种绑定方式 1.on事件绑定方式 document.onclick = func ...
- JavaScript事件冒泡和事件委托
JavaScript事件冒泡和事件委托 付建宇 - 2 条评论 接触JavaScript不久,学的东西也不是特别多.小雨就是习惯把平时学到的东西拿出来分享.一方面加强自己的印象,一方面可以让自己的经验 ...
随机推荐
- Phaser文档访问不了,下载英文版文档到本地,已经共享在国内网站上面
点击链接查看, http://www.simuhunluo.top/Phaser/ 可以找到你所需要的类.
- linux服务器上部署项目,同时运行两个或多个tomcat
在阿里云服务器上部署项目的时候,想使用阿里云提供的负载均衡服务并创建两个监听(如图), 但需要一台服务器提供两个端口,于是就请教前辈并查询资料,得知: 一台服务器提供两个端口,有两种方式: 1.一个t ...
- Lintcode399 Nuts & Bolts Problem solution 题解
[题目描述] Given a set of n nuts of different sizes and n bolts of different sizes. There is a one-one m ...
- PHP_保留两位小数并且四舍五入(可用于精度计算)_保留两位小数并且不四舍五入
小数例子: PHP保留两位小数并且四舍五入 1 $n=0.1265489; 2 echo sprintf("%.2f", $n); // 0.13 大家可以看到我们用到了sprin ...
- 【转】IE浏览器快捷键大全
一般快捷键F11打开/关闭全屏模式 TAB循环的选择地址栏,刷新键和当前标签页 CTRL+F在当前标签页查询字或短语 CTRL+N为当前标签页打开一个新窗口 CTRL+P打印当前标签页 CTRL+A选 ...
- SQL Server中表锁定的原理及解锁演示
有几个朋友留言建议结合例子来演示一下, 上篇已经说过锁的几种类型, 可以利用系统动态视图sys.dm_tran_locks查看到,重要的栏位如下: resource_type 被锁的资源类型(Data ...
- github page 配置hexo 博客 的常见错误
缘起 最近看到好多的公众号作者推荐大家搭建自己的博客,自己手痒也搭建了一个个人博客lumang,具体过程就是一开始上网搜索一番教程,按照教程开始搭建,由于是windows的环境,同时教程也有很多的老旧 ...
- Math对象中比较常用的计算数学相关的三个方法
Math类中提供了三个与取整有关的方法:ceil.floor.round,这些方法的作用与它们的英文名称的含义相对应,例如: ceil的英文意义是天花板,该方法就表示向上取整,所以,Math.ceil ...
- C语言 > 字符串和字符串函数
输入 gets() 函数 : 1.gets() 从标准输入设备读取字符串,以回车结束读取,使用'\0'结尾,回车符'\n'被舍弃没有遗留在缓冲区. 2.可以用来输入带空格的字符串. 3.可以无限读取, ...
- Eclipse中使用github
摘要: 实现:git->eclipse的,eclipse->git双向 1.安装egit插件 在Eclipse中选择help->Eclipse Marketplace,在search ...