JavaScript常见鼠标事件与用法分析


Posted in Javascript onJanuary 03, 2019

本文实例讲述了JavaScript常见鼠标事件与用法。分享给大家供大家参考,具体如下:

JavaScript 鼠标事件有以下8种

mousedown
鼠标的键钮被按下。

mouseup
鼠标的键钮释放弹起。

click
鼠标左键(或中键)被单击。

事件触发顺序是:mousedown -> mouseup -> click

dblclick
鼠标左键(或中键)被双击。

事件触发顺序是:mousedown -> mouseup -> click -> mousedown -> mouseup -> click -> dblclick。

contextmenu
弹出右键菜单,它可能是鼠标右键触发的,也可能是键盘的菜单键触发的。

mouseover
鼠标移动到目标上方。

mouseout
鼠标从目标上方移出。

mousemove
鼠标在目标上方移动

注意:事件名称大小写敏感。若需要监听以上事件,则在事件名的前面加个on即可。

事件区别

onmouseovernmouseout:鼠标移动到自身时候会触发事件,同时移动到其子元素身上也会触发事件

onmouseenteronmouseleave:鼠标移动到自身是会触发事件,但是移动到其子元素身上不会触发事件

全局事件对象event

event.x
事件发生时鼠标的位置

event.y
事件发生时鼠标的位置

button
鼠标的哪一个键触发的事件

0
鼠标左键
1
鼠标中键
2
鼠标右键

代码范例

<html>
  <body>
    <script type="text/javascript">
      function appendText(str) {
        document.body.innerHTML += str + "<br/>";
      }
      document.onmousedown = function() {
        appendText("onmousedown");
        appendText("button = " + event.button);
        appendText("(x,y) = " + event.x + "," + event.y);
      }
      document.onmouseup = function() {
        appendText("onmouseup");
      }
      document.onclick = function() {
        appendText("onclick");
      }
      document.ondblclick = function() {
        appendText("ondblclick");
      }
      document.oncontextmenu = function() {
        appendText("oncontextmenu");
      }
      document.onmouseover = function() {
        appendText("onmouseover");
      }
      document.onmouseout = function() {
        appendText("onmouseout");
      }
      document.onmousemove = function() {
        appendText("mousemove");
      }
    </script>
  </body>
</html>

这里使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码,得到如下运行结果:

 JavaScript常见鼠标事件与用法分析

感兴趣的朋友可以使用本站在线工具测试一下上述代码运行效果。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
解决Extjs上传图片无法预览的解决方法
Mar 22 Javascript
JavaScript中的null和undefined解析
Apr 14 Javascript
学习使用bootstrap的modal和carousel
Dec 09 Javascript
Bootstrap导航条鼠标悬停下拉菜单
Jan 04 Javascript
three.js中文文档学习之如何本地运行详解
Nov 20 Javascript
bootstrap表格内容过长时用省略号表示的解决方法
Nov 21 Javascript
通过fastclick源码分析彻底解决tap“点透”
Dec 24 Javascript
vue-cli 组件的导入与使用教程详解
Apr 11 Javascript
vue中使用protobuf的过程记录
Oct 26 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
Aug 04 Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
Oct 17 Javascript
JS实现简单的九宫格抽奖
Jun 28 Javascript
JavaScript实现动态添加、移除元素或属性的方法分析
Jan 03 #Javascript
JavaScript实现shuffle数组洗牌操作示例
Jan 03 #Javascript
JavaScript实现数字前补“0”的五种方法示例
Jan 03 #Javascript
35个最好用的Vue开源库(史上最全)
Jan 03 #Javascript
原生js实现移动端Touch轮播图的方法步骤
Jan 03 #Javascript
发布一款npm包帮助理解npm的使用
Jan 03 #Javascript
用node开发并发布一个cli工具的方法步骤
Jan 03 #Javascript
You might like
php5 and xml示例
2006/11/22 PHP
用PHP中的 == 运算符进行字符串比较
2006/11/26 PHP
PHP使用DES进行加密与解密的方法详解
2013/06/06 PHP
PHP实现原比例生成缩略图的方法
2016/02/03 PHP
PHP排序二叉树基本功能实现方法示例
2018/05/26 PHP
jquery 单击li防止重复加载的实现代码
2010/12/24 Javascript
Js+Flash实现访问剪切板操作
2012/11/20 Javascript
分享一个我自己写的ToolTip提示插件(附源码)
2013/01/20 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
jQuery中extend函数的实现原理详解
2015/02/03 Javascript
js操作table元素实现表格行列新增、删除技巧总结
2015/11/18 Javascript
点评js异步加载的4种方式
2015/12/22 Javascript
jQuery实现手机版页面翻页效果的简单实例
2016/10/05 Javascript
Bootstrap select实现下拉框多选效果
2016/12/23 Javascript
VUE axios发送跨域请求需要注意的问题
2017/07/06 Javascript
通过vue写一个瀑布流插件代码实例
2019/09/07 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
2020/04/08 Javascript
vue组件中传值EventBus的使用及注意事项说明
2020/11/16 Javascript
[02:30]DOTA2英雄基础教程 暗影恶魔
2013/12/17 DOTA
python实现最长公共子序列
2018/05/22 Python
Python及Pycharm安装方法图文教程
2019/08/05 Python
基于Python执行dos命令并获取输出的结果
2019/12/30 Python
Python while循环使用else语句代码实例
2020/02/07 Python
用Python制作音乐海报
2021/01/26 Python
香港迪士尼乐园酒店预订:Hong Kong Disneyland Hotels
2017/05/02 全球购物
Mio Skincare法国官网:身体紧致及孕期身体护理
2018/04/04 全球购物
俄罗斯儿童和青少年服装、鞋子及配件的在线商店:Orby
2020/02/20 全球购物
俄罗斯卫浴采暖及维修用品超级市场:Dkrussia
2020/05/12 全球购物
物业经理求职自我评价
2013/09/22 职场文书
护理专业本科生自荐信
2013/10/01 职场文书
档案室主任岗位职责
2014/02/12 职场文书
企业承诺书怎么写
2014/05/24 职场文书
小学标准化建设汇报材料
2014/08/16 职场文书
小学科学课教学反思
2016/02/23 职场文书
Mysql中的触发器定义及语法介绍
2022/06/25 MySQL
SpringBoot接入钉钉自定义机器人预警通知
2022/07/15 Java/Android