欢迎光临
我们一直在努力

JavaScript | onmouseover、onmouseout与onmouseenter、onmouseleave

简介

onmouseover、onmouseout:鼠标经过时自身触发事件,经过其子元素时也触发该事件;(父亲有的东西,儿子也有)

onmouseenter、onmouseleave:鼠标经过时自身触发事件,经过其子元素时不触发该事件。(父亲的东西就是父亲的,不归儿子所有)

这四个事件两两配对使用,onmouseover、onmouseout一对,onmouseenter、onmouseleave一对,不能混合使用

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .f{
            position: relative;
            width: 200px;
            height: 200px;
            background-color: #56b829;
        }
        .son{
            width: 100px;
            height: 100px;
            position: absolute;
            left: 50%;
            top: 50%;
            margin-left: -50px;
            margin-top: -50px;
            background-color: red;
        }
    </style>
</head>
<body>
<div class="f">
    <div class="son"></div>
</div>
<script>
    let f=document.getElementsByClassName('f')[0];
    f.onmouseover=function (e) {
        console.log('in',e.target);
    }
    f.onmouseout=function (e) {
        console.log('out',e.target);
    }
</script>
</body>
</html>

我们首先进入最外面的div,可以看到是父div触发了mouseover事件,接着进入子div,可以看到父div触发了mouseout事件,子div接着触发mouseover事件,然后我们从子div里面出来,可以看到子div触发了mouseout事件,父div触发了mouseover事件,接着我们移出鼠标,父div触发mouseout事件.如果不想子div去触发事件,则可以使用onmouseenter、onmouseleave。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .f{
            position: relative;
            width: 200px;
            height: 200px;
            background-color: #56b829;
        }
        .son{
            width: 100px;
            height: 100px;
            position: absolute;
            left: 50%;
            top: 50%;
            margin-left: -50px;
            margin-top: -50px;
            background-color: red;
        }
    </style>
</head>
<body>
<div class="f">
    <div class="son"></div>
</div>
<script>
    let f=document.getElementsByClassName('f')[0];
    f.onmouseenter=function (e) {
        console.log('in',e.target);
    }
    f.onmouseleave=function (e) {
        console.log('out',e.target);
    }
</script>
</body>
</html>
赞(1) 打赏
未经允许不得转载:散人研 » JavaScript | onmouseover、onmouseout与onmouseenter、onmouseleave
分享到: 更多 (0)

评论 抢沙发

1 + 4 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏