【JavaScript】常见的事件(鼠标、键盘、表单等)

本文详细介绍了JavaScript中常见的事件,包括鼠标事件如onclick、onmouseover,键盘事件如onkeydown、onkeyup,表单事件如onfocus、onsubmit,以及触摸和拖拽事件。通过实例解析了如何监听和响应这些事件,帮助读者更好地理解和应用JavaScript事件。
摘要由CSDN通过智能技术生成

💻【JavaScript】常见的事件 🏠专栏:JavaScript
👀个人主页:繁星学编程🍁
🧑个人简介:一个不断提高自我的平凡人🚀
🔊分享方向:目前主攻前端,其他知识也会阶段性分享🍀
👊格言:☀️没有走不通的路,只有不敢走的人!☀️
👉让我们一起进步,一起成为更好的自己!!!🎁

【JavaScript】常见的事件(鼠标、键盘、表单等)

一. 常见的鼠标事件

鼠标事件描述
onclick鼠标点击左键触发
ondblclick鼠标左键双击触发
oncontextmenu鼠标右键单击触发
onmouseover鼠标移入触发
onmouseout鼠标移出触发
onmouseenter鼠标移入事件
onmousele鼠标移出事件
onfocus获得鼠标焦点触发
onblur失去鼠标焦点触发
onmousemove鼠标移动触发
onmouseup鼠标抬起触发
onmousedown鼠标按下触发

onmouseenter和onmouseleaveonmouseover和onmousemove的区别:

  • onmouseover 和 onmouseout 在鼠标移入到子元素上依然可以触发
  • onmouseenter 和 onmouseleave 在鼠标移入子元素的时候,不会触发

二. 常见的键盘事件

键盘事件

  • 可以给所有元素绑定键盘事件, 不是所有元素都能触发键盘事件
  • 一般给 window/document/表单元素 绑定键盘元素
  • 键盘事件不考虑中文
键盘事件描述
onkeydown键盘按下事件
onkeyup键盘抬起事件
onkeypress键盘键入事件

注意onkeypress事件按下的内容必须和出现的内容一致

三. 常见的表单事件

表单事件描述
onfocus表单空间获取焦点
onblur表单失去焦点
onchange表单内容改变
oninput表单输入事件
onsubmit表单提交事件
onreset表单重置事件

注意点

  1. onchange:文本框要求获取焦点和失去焦点内容不一样的时候会触发
  2. oninput:只要输入或删除就会触发
  3. 表单提交重置都必须绑定在form表单域上面

四. 常见的触摸事件

触摸事件描述
ontouchstart开始触摸
ontouchmove触摸移动
ontouchend触摸结束

五. 常见的拖拽事件

拖拽事件描述
ondragstart开始拖拽
ondrag拖拽移动
ondragend结束拖拽
ondragenter拖拽元素进入拖放元素范围内触发
ondragleave拖拽元素离开拖放元素范围触发
ondragover拖拽元素完全进入元素范围内触发
ondragdrop拖拽元素在拖放元素范围内放手的时候触发

注意:如果想要让drop事件生效, 需要阻止 dragover事件的默认行为

<p></p>
<!-----分割线----->
p.ondrop = function() {
    console.log("把元素拖进来撒手");
};

案例:拖拽元素

分析思路

/*
    案例 拖拽
        1. 什么时候触发效果
            1) 鼠标按下
            2) 鼠标抬起
            3) 鼠标移动
        2. 什么范围触发效果
            1) 鼠标按下     div
            2) 鼠标抬起     div
            3) 鼠标移动     document
        3. 什么效果
            1) 鼠标按下     保证div可以拖拽
            2) 鼠标抬起     保证div不可以拖拽
            3) 鼠标移动     设置div top left   
            获取 移动的时候 光标距离窗口左上角的位置  -  初始的时候 光标距离元素左上角的位置
  */
<style>
    div {
        width: 100px;
        height: 100px;
        background-color: pink;
        position: absolute;
    }
</style>
<body>
    <div></div>
</body>
<script>
    // 0 获取元素
    var div = document.querySelector("div");
    // 0 准备变量
    var flag = false; // 默认元素不可以拖拽
    var startX = 0;
    var startY = 0;
    // 1. 鼠标按下
    div.onmousedown = function (e) {
        // 开启开关
        flag = true;
        // 记录刚开始的时候鼠标距离元素左上角的位置
        startX = e.offsetX;
        startY = e.offsetY;
    };
    // 2. 鼠标抬起
    div.onmouseup = function () {
        // 开关关闭
        flag = false;
    };
    // 3. 鼠标移动
    document.onmousemove = function (e) {
        // 如果开关关闭 不能拖拽
        if (!flag) {
            // 如果代码进入这里,表示开关关闭,也就是鼠标抬起,不能拖拽
            return;
        }
        // 表示可以拖拽
        console.log("可以拖拽");
        // 设置 div 的top left
        // 获取 移动的时候 光标距离窗口左上角的位置  -  初始的时候 光标距离元素左上角的位置
        var x = e.clientX - startX;
        var y = e.clientY - startY;
        div.style.top = y + "px";
        div.style.left = x + "px";
    };
</script>

效果图

请添加图片描述

结束语

希望对您有一点点帮助,如有错误欢迎小伙伴指正。
👍点赞:您的赞赏是我前进的动力!
⭐收藏:您的支持我是创作的源泉!
✍评论:您的建议是我改进的良药!
一起加油!!!💪💪💪

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

繁星学编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值