Js之鼠标事件-鼠标事件

一 、常用到的鼠标事件

类型事件
click单机鼠标左键时发生,如果右键也按下则不会发生
dbclick双击鼠标左键时发生,如果右键也按下则不会发生
mousedown单击任意一个鼠标按钮时发生
mouseover鼠标指针位于某个元素上且将要移除元素的边界时发生
mouseout鼠标指针移出某个元素到另一个元素上时发生
mouseup松开任意一个鼠标按钮时发生
mousemove鼠标在某个元素上时持续发生

二、鼠标点击事件

鼠标点击事件包括 click(点击),dbclick(双击),mousedown(按下)和 mouseup(松开)四个。其中 click 事件比较常用,而mousedown 和 mouseup事件类型多用于鼠标施放,拉伸操作中。当这些事件处理函数的返回值为false时,会禁止绑定对象的默认行为。

实例如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        div {
            width: 200px;
            height: 200px;
            background-color: skyblue;
        }
    </style>
</head>
<body>
    <div></div>
    <script>
        var div = document.querySelector('div')
        // 鼠标点击盒子变粉
        div.addEventListener('click',function(){
            this.style.background = 'pink'
        })

    </script>
</body>
</html>

三、鼠标经过事件

鼠标经过包括移入和移出两种事件类型。当移动鼠标指针到某个元素上时,将触发 mouseover事件。而当把鼠标指针移出某个元素时,将触发mouseout事件。如果从父元素中移动到子元素中,也会触发元素的mouseover事件类型。

实例如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        div {
            width: 200px;
            height: 200px;
            background-color: skyblue;
        }
    </style>
</head>

<body>
    <div></div>
    <script>
        var div = document.querySelector('div')
        // 鼠标移入盒子变粉
        div.addEventListener('mouseover', function () {
            this.style.background = 'pink'
        })
        // 鼠标移出盒子变黑
        div.addEventListener('mouseout', function () {
            this.style.background = 'black'
        })
    </script>
</body>

</html>

四、鼠标移动事件

mousemove 事件类型是一个实时响应的事件,当鼠标指针的位置发生变化时(至少移动一个像素),就会触发mousemove事件。该事件响应的灵敏度主要参考鼠标指针的移动速度块慢以及浏览器跟踪更新的速度。

实例如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        div {
            width: 200px;
            height: 200px;
            background-color: skyblue;
        }
    </style>
</head>

<body>
    <div></div>
    <script>
        var div = document.querySelector('div')
        // // 鼠标在盒子内移动后盒子变粉
        div.addEventListener('mousemove', function () {
            this.style.background = 'pink'
        })
    </script>
</body>

</html>

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
好的,以下是一个简单的示例代码,可以实现鼠标点击、松开和移动时的效果: ```html <!DOCTYPE html> <html> <head> <title>鼠标事件示例</title> <style> #box { width: 100px; height: 100px; background-color: red; position: absolute; left: 0; top: 0; } </style> </head> <body> <div id="box"></div> <script> // 获取元素 var box = document.getElementById("box"); // 定义变量,记录鼠标是否按下 var isMouseDown = false; // 添加鼠标按下事件 box.addEventListener("mousedown", function(event) { // 将变量设置为 true isMouseDown = true; // 记录鼠标按下时的位置 var x = event.clientX; var y = event.clientY; // 添加鼠标移动事件 document.addEventListener("mousemove", moveHandler); // 添加鼠标松开事件 document.addEventListener("mouseup", function() { // 将变量设置为 false isMouseDown = false; // 移除鼠标移动事件 document.removeEventListener("mousemove", moveHandler); }); // 鼠标移动事件处理函数 function moveHandler(event) { if (isMouseDown) { // 计算鼠标移动的距离 var deltaX = event.clientX - x; var deltaY = event.clientY - y; // 更新盒子的位置 box.style.left = parseInt(box.style.left) + deltaX + "px"; box.style.top = parseInt(box.style.top) + deltaY + "px"; // 更新 x 和 y 的值 x = event.clientX; y = event.clientY; } } }); </script> </body> </html> ``` 这段代码定义了一个红色的正方形盒子(100px × 100px),当鼠标按下该盒子并移动时,盒子会跟随鼠标移动。当鼠标松开时,盒子停止跟随移动。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值