html5中的鼠标事件以及鼠标事件属性

鼠标事件

先列出html5中鼠标常见的一系列事件:

事件名称 描述
onclick 当单击鼠标时运行脚本
ondblclick 当双击鼠标时运行脚本
ondrag 当拖动元素时运行脚本
ondragend 当拖动操作结束时运行脚本
ondragenter 当元素被拖动至有效的拖放目标时运行脚本
ondragleave 当元素离开有效拖放目标时运行脚本
ondragover 当元素被拖动至有效拖放目标上方时运行脚本
ondragstart 当拖动操作开始时运行脚本
ondrop 当被拖动元素正在被拖放时运行脚本
onmousedown 当按下鼠标按钮时运行脚本
onmousemove 当鼠标指针移动时运行脚本
onmouseout 当鼠标指针移出元素时运行脚本
onmouseover 当鼠标指针移至元素之上时运行脚本
onmouseup 当松开鼠标按钮时运行脚本
onmousewheel 当转动鼠标滚轮时运行脚本
onscroll 当滚动元素滚动元素的滚动条时运行脚本

下面的例子实现了部分鼠标事件:

<style type="text/css">
        div { width: 30px;border: 1px solid gray; height: 30px;background-color: coral;}
    </style>
    <body>  
        <div id="box" 
        onclick = "myclick()"
        ondblclick="mydblclick()"
        onmouseenter="mymouseEnter()"
        onmousedown="mymousesDown()"
        onmouseup="mymouseUp()"
        ></div>
    </body>
    <script type="text/javascript">
        function myclick(){
            console.log("我被点了一下!")
        }   
        function mydblclick(){
            console.log("我被点了两下!")
        }   
        function mymouseEnter(){
            console.log("我的鼠标移进来了!")
        }   
        function mymousesDown(){
            console.log("我的鼠标点下去了!")
        }   
        function mymouseUp(){
            console.log("我的鼠标松开了!")
        }       
    </script>

运行以上代码,可以发现如下几个问题:

  • ondblclick表示双击,触发这个函数时,同时也执行了两次 onclick 鼠标单击函数。
    在上述例子中,双击元素会输出: 我被点了一下!我被点了一下!我被点了两下!
  • onclick事件是 onmousedown事件和onmouseup事件的结合体。实际上onclick事件是在onmouseup事件触发后再触发;
    单击元素,先输出: 我的鼠标松开了!,再输出:我被点了一下!

鼠标事件属性

在使用鼠标事件函数时可以往函数中传入event参数,event代表鼠标的事件对象。
例如:

<style type="text/css">
        div { width: 30px;border: 1px solid gray; height: 30px;background-color: coral;}
    </style>
    <body>  
        <div id="box" onclick = "myclick(event)"></div>
    </body>
    <script type="text/javascript">
        function myclick(event){
            console.log(event)
        }           
    </script>

运行页面,单击元素,在控制台中可见:


MouseEvent对象

对象中常见属性介绍:

属性 描述
clientX 返回鼠标位置相对于浏览器窗口左上角的水平坐标
clientY 返回鼠标位置相对于浏览器窗口左上角的垂直坐标
offsetX 返回鼠标位置距离事件作用对象左侧边缘的水平距离
offsetY 返回鼠标位置距离事件作用对象左侧边缘的垂直距离
pageX 返回鼠标位置距离文档左侧边缘的距离
pageY 返回鼠标位置距离文档顶部的距离
altKey 鼠标事件发生时是否按下了alt键,返回为bool值
ctrlKey 鼠标事件发生时是否按下了ctrl键,返回为bool值
metaKey 鼠标事件发生时是否按下了meta键,返回为bool值
shiftKey 鼠标事件发生时是否按下了shift键,返回为bool值

其他的可以自己点开看看,输出试试;
举例:

<style type="text/css">
        div { width: 30px;border: 1px solid gray; height: 30px;background-color: coral;}
    </style>
    <body>  
        <div id="box" onclick = "myclick(event)"></div>
    </body>
    <script type="text/javascript">
        function myclick(event){
            console.log(event)
            console.log("触发事件的dom元素的ID:"+event.target.id)
            console.log("事件类型:"+event.type)
        }           
    </script>

结果如下:


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • 一、HTML5中的新标签 :定义外部的内容,这些内容独立于文档的其余部分; :定义其所处内容之外的内容; :定义声...
    暖A暖阅读 347评论 0 2
  • 兼容性:HTML5在老版本的浏览器上也可以正常运行 实用性:HTML5内部并没有特别复杂的功能,它只封装了那些常用...
    舌尖上的苏东坡阅读 2,552评论 0 0
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,470评论 1 11
  • 摘要: 全局属性和事件能够应用到所有标签元素上,在HTML4中有许多全局属性,比如id,class等。HTML5中...
    恩德_b0c2阅读 600评论 0 2
  •   JavaScript 是一种极其灵活的语言,具有多种使用风格。   一般来说,编写 JavaScript 要么...
    霜天晓阅读 738评论 0 0