JavaScript事件学习小结(五)js中事件类型之鼠标事件

 更新时间:2016年06月09日 11:08:54   作者:starof  
这篇文章主要介绍了JavaScript事件学习小结(五)js中事件类型之鼠标事件的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下

相关阅读:

JavaScript事件学习小结(五)js中事件类型之鼠标事件

https://www.jb51.net/article/86259.htm

JavaScript事件学习小结(一)事件流

https://www.jb51.net/article/86261.htm

javaScript事件学习小结(四)event的公共成员(属性和方法)

https://www.jb51.net/article/86262.htm

JavaScript事件学习小结(二)js事件处理程序

https://www.jb51.net/article/86264.htm

JavaScript事件学习小结(三)js事件对象

鼠标事件

DOM3级事件中定义了9个鼠标事件。

mousedown:鼠标按钮被按下(左键或者右键)时触发。

不能通过键盘触发。

mouseup:鼠标按钮被释放弹起时触发。

不能通过键盘触发。

click:单击鼠标左键或者按下回车键时触发。这点对确保易访问性很重要,意味着onclick事件处理程序既可以通过键盘也可以通过鼠标执行。dblclick:双击鼠标左键时触发。mouseover:鼠标移入目标元素上方。鼠标移到其后代元素上时会触发。mouseout:鼠标移除目标元素上方。

mouseenter:鼠标移入元素范围内触发,该事件不冒泡,即鼠标移到其后代元素上时不会触发。

mouseleave:鼠标移出元素范围时触发,该事件不冒泡,即鼠标移到其后代元素时不会触发。

mousemove:鼠标在元素内部移到时不断触发。

不能通过键盘触发。

note:

在一个元素上相继触发mousedown和mouseup事件,才会触发click事件。两次click事件相继触发才会触发dblclick事件。

如果取消 了mousedown或mouseup中的一个,click事件就不会被触发。直接或间接取消了click事件,dblclick事件就不会被触发了。

1、事件触发的顺序

举例:通过双击按钮,看一下上面触发的事件。

<body>
<input id="btn" type="button" value="click"/>
<script>
 var btn=document.getElementById("btn");
 btn.addEventListener("mousedown",function(event){
 console.log("mousedown");
 },false);
 btn.addEventListener("mouseup",function(){
 console.log("mouseup");
 },false);
 btn.addEventListener("click", function () {
 console.log("click");
 },false);
 btn.addEventListener("dblclick", function () {
 console.log("dblclick");
 },false);
</script>
</body>

2、mouseenter和mouseover的区别

区别:

mouseover事件会冒泡,这意味着,鼠标移到其后代元素上时会触发。

mouseenter事件不冒泡,这意味着,鼠标移到其后代元素上时不会触发。

举例:

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <title></title>
 <style>
 #outer{
  position: absolute;
  width: 200px;
  height: 200px;
  top:0;
  left: 0;
  bottom:0;
  right: 0;
  margin: auto;
  background-color: pink;
 }
 #inner{
  position: absolute;
  width: 100px;
  height:100px;
  top:50%;
  left:50%;
  margin-left: -50px;
  margin-top: -50px;;
  background-color: orange;
  text-align: center;
  line-height: 100px;
 }
 #outer,#inner{
  border-radius:50%;
 }
 </style>
 <script src="jquery-2.1.1.min.js"></script>
</head>
<body>
<body>
<div id="outer">
 <div id="inner">
 </div>
</div>
</body>
<script>
var parentDiv=document.getElementById("outer");
parentDiv.addEventListener("mouseover", function () {
 console.log("父div的mouseover事件被触发");
},false);
//parentDiv.addEventListener("mouseenter", function () {
// console.log("父div的mouseenter事件被触发");
//},false);
//parentDiv.addEventListener("mouseout", function () {
// console.log("父div的mouseout事件被触发");
//},false);
//parentDiv.addEventListener("mouseleave", function () {
// console.log("父div的mouseleave事件被触发");
//},false);
</script>
</body>
</html>

note:

mouseover对应mouseout,mouseenter对应mouseleave。效果可以取消上面代码的注释来看。

jquery中hover API是把mouseenter 和mouseleave组合在一起来用的。

3、鼠标左键和右键

<script type="text/javascript">
document.onmousedown=function (ev)
{
 var oEvent=ev||event;
 alert(oEvent.button);// IE下鼠标的 左键是1 , 右键是2 ff和chrome下 鼠标左键是0 右键是2
};
</script>

4、mouseover和mousemove的区别

一般情况下mouseover即可,特殊情况才用mousemove,mousemove更耗资源,比如要监控鼠标坐标的变化等。

以上所述是小编给大家介绍的JavaScript事件学习小结(五)js中事件类型之鼠标事件的相关知识,希望对大家有所帮助!

相关文章

  • 小程序实现搜索界面 小程序实现推荐搜索列表效果

    小程序实现搜索界面 小程序实现推荐搜索列表效果

    这篇文章主要为大家详细介绍了小程序实现搜索界面,小程序实现推荐搜索列表效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • JS对大量数据进行多重过滤的方法

    JS对大量数据进行多重过滤的方法

    今天在工作中遇到一个问题,当前端通过Ajax从后端取得了大量的数据,需要根据一些条件过滤,但是发现写的过滤方法有问题,后来仔细的查找问题,通过网上的资料终于解决了这个问题,现在将解决的过程以及解决方法分享给大家,有需要的朋友们可以参考借鉴。
    2016-11-11
  • JavaScript 类型转换的详细实现

    JavaScript 类型转换的详细实现

    本文主要介绍了JavaScript 类型转换的详细实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • js实现带进度条提示的多视频上传功能

    js实现带进度条提示的多视频上传功能

    这篇文章主要为大家详细介绍了js实现带进度条提示的多视频上传功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • JS实现文本比较差异的示例代码

    JS实现文本比较差异的示例代码

    内部系统上线了一个发版记录发版内容的功能,维护发版记录的同事提出一个可以展示前后文本差异的优化需求, 使的每次变更前可以确认新增了哪些,或者删除了哪些内容,所以本文给大家介绍了基于JS实现文本比较差异,需要的朋友可以参考下
    2023-12-12
  • 如何通过JavaScript、css、H5实现简单的tab栏切换和复用功能

    如何通过JavaScript、css、H5实现简单的tab栏切换和复用功能

    tab切换在项目中也算是常用技术,一般实现tab切换都用js或者jq实现,下面这篇文章主要给大家介绍了关于如何通过JavaScript、css、H5实现简单的tab栏切换和复用功能的相关资料,需要的朋友可以参考下
    2022-11-11
  • 微信小程序图片上传组件实现图片拖拽排序

    微信小程序图片上传组件实现图片拖拽排序

    最近在写小程序过程中遇到一个拖拽排序需求,上网一顿搜索未果,遂自行实现,下面这篇文章主要给大家介绍了关于微信小程序图片上传组件实现图片拖拽排序的相关资料,需要的朋友可以参考下
    2022-03-03
  • webpack5 联邦模块介绍详解

    webpack5 联邦模块介绍详解

    这篇文章主要介绍了webpack 5 联邦模块介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • JS 事件绑定函数代码

    JS 事件绑定函数代码

    JS 事件绑定函数代码,解决了浏览器兼容,现在可以兼容IE6 7 8 FF 谷歌
    2010-04-04
  • 微信小程序云函数添加数据到数据库的方法

    微信小程序云函数添加数据到数据库的方法

    这篇文章主要介绍了微信小程序云函数添加数据到数据库的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03

最新评论