每日分享!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 都是鼠标离开时候触发。但两者的区别是,前者会在子节点内多次触发。后者只会离开节点时触发。

原文地址:https://www.cnblogs.com/yaogengzhu/p/10777232.html

时间: 2024-10-10 07:20:37

每日分享!JavaScript的鼠标事件(11个事件)的相关文章

Javascript判断鼠标点击右击事件

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> window.onload = function(){ //去掉默认的contextmenu事件,否则会和右键事件同时出现. document.on

JavaScript基础 鼠标放上触发事件onmouseover 鼠标移开触发事件onmouseout

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"

每日分享!~ JavaScript(拖拽事件)

浏览器的拖拉事件 拖拉(drag)指的是,用户在某个对象上按下鼠标键不放,拖动它到另一个位置,然后释放鼠标键,将该对象放在那里. 拖拉的对象有好几种,包括元素节点.图片.链接.选中的文字等等.在网页中,除了元素节点默认不可以拖拉,其他(图片.链接.选中的文字)都是可以直接拖拉的.为了让元素节点可拖拉,可以将该节点的draggable属性设为true. 注意这点哦!!!如果需要这个元素具有拖拉功能,必须要设置一个属性draggable=true . 当元素节点或选中的文本被拖拉时,就会持续触发拖拉

javascript鼠标双击时触发事件大全

javascript事件列表解说 事件 浏览器支持 解说 一般事件 onclick IE3.N2 鼠标点击时触发此事件 ondblclick IE4.N4 鼠标双击时触发此事件 onmousedown IE4.N4 按下鼠标时触发此事件 onmouseup IE4.N4 鼠标按下后松开鼠标时触发此事件 onmouseover IE3.N2 当鼠标移动到某对象范围的上方时触发此事件 onmousemove IE4.N4 鼠标移动时触发此事件 onmouseout IE4.N3 当鼠标离开某对象范围

IE和Chrome执行javascript对鼠标双击事件的不同响应

最近在用天地图API帮同学做点开发的工作,主要是基于天地图的API实现违法用地举报的在线地图标绘,要实现的效果如下: 由于是基于天地图API的TPolygonTool工具实现面积量测和多边形绘制功能,实现思路如下: (1)基于按钮的鼠标点击事件开启多边形标绘工具: 1 //开启/关闭违法标绘工具 2 function onClickPolyTool() { 3 var btn = document.getElementById("polyToolBtn"); 4 if (btn.val

如何在JavaScript捕获鼠标事件

前言 为页面增加与用户的交互是JavaScript的基本功能之一.为此,我们需要一些机制来检测用户和程序在特定时间 在做什么.比如鼠标在浏览器的什么位置,用户是否点击鼠标或按了键,页面是否完整加载到浏览器等等.在些发生 的事情,我们称之为"事件",JavaScript提供了多种工具来操作它们. .1     onClick事件处理器 onClick事件处理器几乎可以用于页面上任何可见的HTML元素.使用它的方式之一是给HTML元素添加一个属性 为:onclick.看下面的范例: <

javascript中点击鼠标右键触发的事件

javascript中事件有很多种,这里只谈一个很有用,但不常见的事件. 单击鼠标右键触发的事件contextmenu事件. document.oncontextmenu=function(){ return false; } 这样就可以屏蔽掉鼠标右击的事件.当然如果需要什么效果也可以在事件监听函数中添加.

JavaScript学习11:事件入门

JavaScript事件是由访问Web页面的用户引起的一系列操作,例如:用户点击鼠标,敲击键盘了等等.当用户执行类似操作的时候,再去触发执行一系列代码作为用户操作的响应,这就是所谓的事件了吧. 事件一般是用于浏览器和用户操作进行交互,通常我们将JavaScript中的事件模型分为三种:内联模型.脚本模型和DOM2模型. 内联模型 是最传统的接单的一种处理事件的方法.在这个模型中,事件处理函数是HTML标签的一个属性,用于处理指定事件.虽然内联在早期使用较多,但是它是和html混写的,并没有与ht

JavaScript获取鼠标点击坐标

如何用JavaScript获取鼠标点击时在canvas画布上的坐标呢: 代码如下: -------------------------------------------------------------- 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>demo</title> 6