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

news/2023/5/28 9:09:04

💻【JavaScript】常见的事件 🏠专栏: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) 鼠标按下     div2) 鼠标抬起     div3) 鼠标移动     document3. 什么效果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>

效果图

请添加图片描述

结束语

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-4559437.html

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

2018.09.17-2018.09.23

1.描述计算机的组成及其功能。1,计算机组成&#xff1a;运算器 控制器 内存 输入 输出中央处理器&#xff1a;中央处理器CPU&#xff08;Central Processing Unit&#xff09;是一块超大规模的集成电路 &#xff0c;是一台计算机的运算核心和控制核心。它的功能主要是解释计算机…

uboot配置,编译,移植

文章目录前言1.文件及文件夹2.README文件(1).配置及编译(2).镜像格式3.sd_fusing文件夹4.主Makefile总结5.mkconfig6.config.mk7.u-boot.lds8.include/autoconfig.mk9.tools目录开发板厂商提供的uboot的配置及编译没有弄明白的知识前言 1.此文章不仅对uboot进行配置&#xff0…

输入子系统架构分析

内核的输入子系统是对分散的&#xff0c;多种不同类别的输入设备(如键盘&#xff0c;鼠标&#xff0c;跟踪球&#xff0c;操纵杆&#xff0c;触摸屏&#xff0c;加速计和手写板)等字符设备进行统一处理的一层抽象&#xff0c;就是在字符设备驱动上抽象出的一层。输入子系统包括…

AXD+H-JTAG环境搭建总结

1. 到http://www.hjtag.com/下载最新版的H-JTAG 安装好后&#xff0c;如下图所示设置好AXD&#xff1a; 添加H-JTAG.dll&#xff0c;该dll文件在H-JTAG的安装目录下可以找到 设置好过后&#xff0c;在ADS1.2的界面中点击如下按钮即可以进行调试&#xff1a; 弹出对应的调试界面…

Odrive_0.5.5运行代码分析_(二)_了解各个线程

开始概览rtos_main MX_USB_DEVICE_Init();start_general_purpose_adc();init_communication();进入can_server_thread()通讯循环pwm0_input.init();电机驱动的初始化start_adc_pwm();start_analog_thread();axes[i].start_thread();task_chain_总结概览rtos_main 可以看到&…

linux内核list.h头文件分析(一)

之前上《linux操作系统》课程的时候&#xff0c;陈老师安排的一个作业就是分析linux内核中的头文件list.h&#xff0c;但是之前我没有认真做&#xff0c;都是完成任务式的去做。今天比较伤心些&#xff0c;一个同学问我list.h中的#define LIST_HEAD_INIT(name) { &(name), …

Ubuntu10.04下安装minicom(转)

安装&#xff1a;sudo apt&#xff0d;get install minicom配置&#xff1a;1 . 在终端中输入minicom以启动minicom&#xff1b;2. 先按下Ctrl a, 放开, 再按o, 出现配置菜单.也可以用命令&#xff1a;(minicom -s)3. 选择 Serial port setup, 此时所示图标在“Change which s…

linux内核list.h头文件分析(三)

&#xff08;八&#xff09;旋转链表的第一个节点到最后这个函数的操作的最终结果是将head的next与head自己本身进行了交换。static inline void list_rotate_left(struct list_head *head) { struct list_head *first; if (!list_empty(head)) { first head-…

Linux USB Driver

Linux USB Driver 1. USB简介 USB&#xff0c;是英文Universal Serial Bus&#xff08;通用串行总线&#xff09;的缩写&#xff0c;而其中文简称为“通串线”&#xff0c;是一个外部总线标准&#xff0c;用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术…

UE4 RenderDoc笔记

1.Meh Viewer&#xff1a;当前DrawCall的Mesh信息&#xff0c;可以查看每个点的输入和输出 可以看到该DrawCall的Mesh顶点数量为510&#xff08;该材质ID的Mesh三角面数&#xff09;170*3&#xff0c;第一个顶点ID为3637 2.Texture Viewer:查看该次事件所调用的输入、输出缓…

ppt讲解html,HTML简介讲解.ppt

作业 1.制作一个图文并貌的网页至少3张图片、一个视频文件 文字不少于三段&#xff0c;字数不少于100字 至少用到等标记符及align属性 图片应分别满足以下排版要求&#xff1a; 实现文本与图像的环绕 文本居于图片左侧 文字与图片在垂直方向上居中对齐 2.制作一个具有锚点链接的…

Linux系统管理中Nginx和python的安装以及python虚拟环境软件的安装与使用(四)

1、Nginx的安装和配置&#xff1a; 说明&#xff1a;Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器&#xff1b;同时也是一个IMAP、POP3、SMTP代理服务器&#xff1b;Nginx可以作为一个HTTP服务器进行网站的发布处理&#xff0c;另外Nginx可以作为反向代理进…

ARM S5PV210的SD卡启动实战

一、S5PV210的SD卡启动实战1 1、任务&#xff1a;大于16KB的bin文件使用 SD 卡启动 (1) 总体思路&#xff1a;将我们的代码分为 2 部分&#xff1a;第一部分 BL1 ≤ 16KB&#xff0c;第二部分为任意大小。 iROM 代码执行完成后&#xff0c;从 SD 卡启动会自动读取 BL1 到 SRA…

微积分 重难点记录 一 曲线间的面积 + 体积

微积分 重难点记录 见 微积分 重难点记录 知识点一&#xff1a; 知识点二&#xff1a; 题目三&#xff1a; 题目四&#xff1a;

Android包体积优化(常规、进阶、极致)

前言 包大小的重要性已经不需要多说&#xff0c;包大小直接影响用户的下载&#xff0c;留存&#xff0c;甚至部分厂商预装强制要求必须小于一定的值。但是随着业务的迭代开发&#xff0c;应用会越来越大&#xff0c;安装包会不停的膨胀&#xff0c;因此包大小缩减是一个长期持续…

AutoCAD Civil 3D关于计算重叠材质或悬垂的体积

工程测量内业中使用AutoCAD Civil 3D进行工程量计算分析&#xff08;C3D里称为材质体积&#xff09;时&#xff0c;对于由多个曲面形成的施工区域就不能使用简单的两期计算&#xff0c;而要通过添加子标准进行逻辑加法&#xff0c;而子标准的正确与否很容易导致出现重算&#x…

ArcGIS教程:“表面体积”的工作原理

表面体积可计算某个表面相对于给定基本高度或参考平面的投影面积、表面面积和体积。该表面可以是栅格、TIN 或terrain 数据集。结果将写入以逗号分隔的文本文件。 如果输入表面是 TIN 或 terrain 数据集&#xff0c;将对每个三角形进行检查以确定其对面积和体积的影响。这些部分…

三重积分(Triple Integral)

34.三重积分34.三重积分34.1 空间区域中的体积34.1.1 对应的计算方法34.1.2 空间中函数的平均值34.2 柱面坐标中的三重积分34.2.1 柱面坐标&#xff08;一个角度、两个长度&#xff09;34.2.2 对应的计算方法34.3 球面坐标中的三重积分34.3.1 球面坐标&#xff08;两个角度、一…

877. 石子游戏

877. 石子游戏题目算法设计&#xff1a;奇偶算法设计&#xff1a;动态规划题目 算法设计&#xff1a;奇偶 最简单的情况&#xff0c;只有2堆石子&#xff08;石子奇数&#xff09;&#xff0c;先稳赢。 但是四堆情况不同了&#xff0c;如 [3 7 2 3]。 不能直接选最大的&…

c++计算键入参数 输出圆柱体积 以及表面积 类的使用

制作一个密闭圆柱形的油桶装汽油&#xff0c;铁皮每平米售价为25元。设计一个Jerrican类&#xff0c;可以求出圆柱形油桶的表面积和容积&#xff08;大约&#xff09;&#xff0c;同时计算制作一个这样的油桶的材料成本是多少&#xff1f; //相关代码// jisuantiji.cpp: 主项目…