文章导航

JavaScript mouseout 事件

2019-2-21 00:58| 作者: admin| 查看: 731| 评论: 0|来自: 蚂蚁部落

当鼠标指针离开指定元素时触发mouseout 事件,事件名称也体现了其功能。

此事件与mouseover事件相对应,一个是指针离开元素时触发,一个是指针进入元素时触发。

不仅mouseout事件可以表示鼠标指针离开指定元素,mouseleave事件也可以,当然两者是有区别的。

本文专注于介绍mouseout事件,其他相关知识可以参阅如下两篇文章:

(1).JavaScript mouseover 事件一章节。

(2).mouseout与mouseleave区别一章节。

(3).JavaScript 注册事件处理函数一章节。

首先罗列出mouseout事件的几个主要特点,最后再通过代码实例一一演示:

(1).事件支持冒泡现象。

(2).当鼠标指针从子元素移出时,事件触发,这其实是事件冒泡的体现。

(3).当鼠标指针从父元素移入子元素时事件触发。

(4).对于设置为disabled不可用的表单元素有效,有一定浏览器兼容性问题,edge不支持。

浏览器支持:

(1).IE浏览器支持此事件。

(2).edge浏览器支持此事件。

(3).火狐浏览器支持此事件。

(4).Opera浏览器支持此事件。

(5).谷歌浏览器支持此事件。

(6).safria浏览器支持此事件。

代码实例如下:

[HTML] 纯文本查看 复制代码运行代码
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style>
div{
    width:150px;
    height:60px;
    line-height:60px;
    text-align: center;
    background-color: #ccc;
    margin:60px;
}
</style>
<script>
window.onload=function(){
    let odiv=document.querySelector("div");
    odiv.onmouseout=function(){
        this.innerHTML="蚂蚁部落";
    }
}
</script>  
</head>
<body> 
  <div></div>
</body>
</html>

上述代码很简单,当鼠标从div中移出触发mouseout事件,将指定字符串写入其中。

[HTML] 纯文本查看 复制代码运行代码
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style>
#outer{
    width:150px;
    height:100px;
    background-color: green;
    margin:60px;
    position: relative;
}
#inner{
    width:75px;
    height:50px;
    text-align: center;
    line-height: 50px;
    background-color: #ccc;
    margin:30px;
    position:absolute;
    left:120px;
}
</style>
<script>
window.onload=function(){
    let outer=document.querySelector("#outer");
    let inner=document.querySelector("#inner");
    outer.onmouseout=function(){
        inner.innerHTML="蚂蚁部落";
    }
}
</script>  
</head>
<body> 
  <div id="outer">
      <div id="inner"></div>
  </div>
</body>
</html>

当鼠标从子元素inner移出的时候效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201902/21/005921lh0wsl04qgyxxnpb.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

代码分析如下:

(1).inner是outer的子元素,为了便于观察,采用定位方式将其移出父元素。

(2).为父元素注册事件处理函数,子元素本身没有注册。

(3).当鼠标从子元素中移出的时候,由于事件冒泡传递到父元素,事件触发,并将字符串写入div。

[HTML] 纯文本查看 复制代码运行代码
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style>
#outer{
    width:150px;
    height:100px;
    background-color: green;
    overflow: hidden;
    margin:60px;
}
#inner{
    width:75px;
    height:50px;
    text-align: center;
    line-height: 50px;
    background-color: #ccc;
    margin:30px;
}
</style>
<script>
window.onload=function(){
    let outer=document.querySelector("#outer");
    let inner=document.querySelector("#inner");
    outer.onmouseout=function(){
        inner.innerHTML="蚂蚁部落";
    }
}
</script>  
</head>
<body> 
  <div id="outer">
      <div id="inner"></div>
  </div>
</body>
</html>

我们知道,当鼠标指针移出整个父元素,触发mouseout事件是毫无疑问的。

mouseout还有一个特点,那么就是当鼠标指针从父元素中移入它的子元素的时候事件也会触发。

于是,当鼠标指针从outer元素移入inner元素的时候会触发mouseout事件,将指定字符串写入。

最后强调一点,此事件在被设置为禁用状态的表单元素上也是有效的,当前有一定的兼容性问题,当然随着时间的推移,浏览器支持度随时会发生变化,一切以实测为准,由于比较简单,本文不再举例演示。


鲜花

握手

雷人

路过

鸡蛋

最新评论

返回顶部