前端JavaScript篇之常见事件

目录

  • JavaScript常见事件
    • click(点击)
    • mouseover(鼠标悬停)
    • keydown(按键按下)
    • load(加载)
    • submit(提交)


JavaScript常见事件

JavaScript中的事件是指用户与网页元素交互时所触发的动作或者状态变化。这些事件可以包括点击、悬停、键盘输入、页面加载等。在JavaScript中,您可以通过添加事件监听器来捕获并处理这些事件。以下是一些常见的JavaScript事件:

  • click(点击):当用户点击某个元素时触发。
  • mouseover(鼠标悬停):当鼠标悬停在元素上方时触发。
  • keydown(按键按下):当用户按下键盘上的任意键时触发。
  • load(加载):当页面完全加载后触发。
  • submit(提交):当表单提交时触发。

您可以使用JavaScript来注册这些事件,并在事件发生时执行相应的操作。

click(点击)

在前端开发中,click 事件是指当用户点击某个元素时触发的动作。这是用户与网页交互最常见的一种方式之一。

在实际项目中,您可能需要根据用户的点击来执行不同的操作。例如,在一个社交媒体应用程序中,当用户点击“喜欢”按钮时,您可能需要向服务器发送请求以更新喜欢的状态,并且可能还需要更新页面上的计数器以反映新的喜欢数量。

假设您正在开发一个网页,其中有一个按钮,当用户点击该按钮时,会改变按钮的颜色。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>JavaScript Click事件示例</title><style>.highlight {background-color: yellow;}</style></head><body><button id="myButton">点击我</button><script>const button = document.getElementById('myButton')button.addEventListener('click', function () {button.classList.add('highlight')})</script></body>
</html>

请添加图片描述

上述代码中,我们首先获取了按钮元素,然后使用 addEventListener 方法为按钮添加了一个 click 事件监听器。当用户点击按钮时,触发的函数会将按钮的类更改为 “highlight”,从而改变按钮的背景颜色。

  • 确保在DOM加载完成后再执行JavaScript代码,可以将代码放在DOMContentLoaded 事件监听器中。
  • 了解事件冒泡和事件捕获,以便在需要时正确处理事件的传播。
  • 在处理复杂的交互时,考虑到事件委托(event delegation)可以提高性能并简化代码。

click 事件是前端开发中最常见的事件类型之一,它使我们能够响应用户的点击操作,并在点击发生时执行特定的代码。通过理解事件的触发和处理,我们可以为用户提供更加丰富和动态的交互体验。

mouseover(鼠标悬停)

mouseover 事件是指当用户将鼠标悬停在某个元素上方时触发的动作。这种事件常用于提供用户交互反馈,例如当用户将鼠标悬停在链接上时显示链接预览或者改变元素的样式。

在实际项目中,您可能需要根据用户的鼠标悬停来展示相关信息或者改变元素的外观。例如,在一个电子商务网站上,当用户将鼠标悬停在产品图片上时,您可能希望显示产品的价格和简要描述。

假设您正在开发一个网页,其中有一张图片,当用户将鼠标悬停在图片上时,希望显示一段文字说明。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>JavaScript Mouseover事件示例</title><style>#imageContainer {position: relative;display: inline-block;}#infoBox {display: none;position: absolute;top: 100%;left: 0;background-color: white;padding: 5px;border: 1px solid #ccc;}img {width: 400px;height: 400px;}</style></head><body><div id="imageContainer"><img src="./img/2.jpg" alt="Your Image" /><div id="infoBox">这是一张美丽的图片</div></div><script>const imageContainer = document.getElementById('imageContainer')const infoBox = document.getElementById('infoBox')imageContainer.addEventListener('mouseover', function () {infoBox.style.display = 'block'})imageContainer.addEventListener('mouseout', function () {infoBox.style.display = 'none'})</script></body>
</html>

请添加图片描述

在上述代码中,我们首先创建了一个包含图片和信息框的容器。随后,我们为容器添加了 mouseovermouseout 事件监听器。当用户将鼠标悬停在容器上时,信息框的显示状态会被切换为可见;当鼠标移出时,信息框又会隐藏起来。

  • 鼠标悬停事件通常与鼠标移出事件结合使用,以确保用户体验良好。
  • 考虑到不同设备的触摸屏幕,应该谨慎使用仅限于鼠标的交互设计。

mouseover 事件使得我们能够在用户将鼠标悬停在元素上时执行相应的代码,从而提供更加丰富和动态的交互体验。通过理解事件的触发和处理,我们可以为用户提供更加友好和直观的界面反馈。

keydown(按键按下)

keydown 事件是指当用户在页面上按下键盘上的任意键时触发的动作。这种事件通常用于捕获用户的键盘输入,以便执行相应的操作。

在实际项目中,您可能需要根据用户的键盘输入来执行不同的操作。例如,在一个文本编辑应用程序中,当用户按下键盘上的某个特定键时,您可能需要检测并处理用户的输入,比如执行撤销或保存操作。

假设您正在开发一个简单的网页,当用户按下键盘上的任意键时,页面上的文字颜色会改变。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>JavaScript Keydown事件示例</title><style>#content {font-size: 24px;}</style>
</head>
<body><div id="content">按下键盘上的任意键看看会发生什么</div><script>const content = document.getElementById("content");document.addEventListener("keydown", function(event) {content.style.color = getRandomColor();});function getRandomColor() {const letters = "0123456789ABCDEF";let color = "#";for (let i = 0; i < 6; i++) {color += letters[Math.floor(Math.random() * 16)];}return color;}</script>
</body>
</html>

请添加图片描述
在上述代码中,我们为整个文档添加了 keydown 事件监听器。当用户按下键盘上的任意键时,触发的函数会将内容的文字颜色更改为随机的颜色。

  • 确保在DOM加载完成后再执行JavaScript代码,可以将代码放在DOMContentLoaded 事件监听器中。
  • 在处理键盘事件时,要考虑到不同的键盘布局和用户习惯,确保您的交互设计对多种情况都友好。

keydown 事件使得我们能够响应用户在页面上按下键盘上的任意键的操作,并在按键按下时执行特定的代码。通过理解事件的触发和处理,我们可以为用户提供更加丰富和动态的交互体验,从而增强用户与页面的互动性。

load(加载)

load 事件是指当整个页面及其所需资源完全加载后触发的事件。这种事件通常用于在页面加载完成后执行一些初始化操作或者处理特定的逻辑。

在实际项目中,您可能需要在页面加载完成后执行一些操作,比如初始化页面数据、加载动画、或者向服务器请求额外的数据。

假设您正在开发一个包含大量图片的网页,当所有图片都加载完成后,您希望显示一个“欢迎”的提示。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>JavaScript Load事件示例</title><style>#welcomeMessage {display: none;text-align: center;font-size: 24px;margin-top: 100px;}</style></head><body><div id="welcomeMessage">欢迎访问我们的网站!</div><script>window.addEventListener('load', function () {const welcomeMessage = document.getElementById('welcomeMessage')welcomeMessage.style.display = 'block'})</script></body>
</html>

请添加图片描述

在上述代码中,我们为整个窗口添加了 load 事件监听器。当整个页面及其所需资源完全加载完成后,触发的函数会将欢迎信息的显示状态切换为可见。

  • load 事件仅在整个页面及其所需资源完全加载后才会触发,因此适合于执行那些依赖于整个页面结构和资源完全加载的操作。
  • 对于单个元素内部的资源加载完成,可以考虑使用该元素的 load 事件。

load 事件使得我们能够在整个页面及其所需资源完全加载后执行特定的代码,从而提供更加丰富和动态的交互体验。通过理解事件的触发和处理,我们可以在页面加载完成后执行必要的初始化操作,确保用户获得最佳的浏览体验。

submit(提交)

submit 事件是指当用户提交表单时触发的事件。这种事件通常用于在用户提交表单之前执行验证操作或者在表单提交后处理用户输入的数据。

在实际项目中,您可能需要在用户提交表单时执行一些验证逻辑,比如检查用户输入是否合法,并在验证通过后将数据发送到服务器。

假设您正在开发一个注册页面,当用户点击注册按钮提交表单时,您希望验证用户输入的信息是是否有效,并向服务器发送注册请求。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>JavaScript Submit事件示例</title></head><body><form id="registrationForm"><input type="text" id="username" placeholder="用户名" required /><input type="password" id="password" placeholder="密码" required /><button type="submit">注册</button></form><script>const form = document.getElementById('registrationForm')form.addEventListener('submit', function (event) {event.preventDefault() // 阻止表单默认提交行为// 在这里执行表单验证和提交逻辑const username = document.getElementById('username').valueconst password = document.getElementById('password').valueif (username && password) {// 执行提交逻辑,比如向服务器发送注册请求console.log('提交表单 - 用户名:' + username + ',密码:' + password)} else {alert('用户名和密码不能为空')}})</script></body>
</html>

请添加图片描述

在上述代码中,我们为表单添加了 submit 事件监听器。当用户点击注册按钮提交表单时,触发的函数会首先阻止表单的默认提交行为,然后执行自定义的表单验证和提交逻辑。

  • 在表单提交事件中,通常需要使用 event.preventDefault() 阻止表单的默认提交行为,以便执行自定义的验证和处理逻辑。
  • 表单验证逻辑可以根据具体需求进行设计,确保用户输入的数据符合预期的格式和规范。

submit 事件使得我们能够在用户提交表单时执行特定的验证和处理逻辑,从而确保用户输入的数据符合预期的格式和规范,并且在验证通过后将数据提交到服务器。通过理解事件的触发和处理,我们可以为用户提供更加友好和安全的表单交互体验,从而增强用户与网站的互动性。

持续学习总结记录中,回顾一下上面的内容:
JavaScript常见事件包括click(点击)、mouseover(鼠标悬停)、keydown(按键按下)、load(加载)、submit(提交)等。这些事件用于捕获用户在页面上的交互动作,比如点击按钮、移动鼠标、按下键盘、页面加载完成和提交表单等。通过处理这些事件,我们可以实现丰富的交互体验,比如验证表单、改变页面内容、执行动画效果等。掌握这些事件能够让我们更好地响应用户操作,提升网站的交互性和用户体验。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM垃圾收集器-serial.parNew,parallelScavnge,serialOld,parallelOld,CMS,G1

垃圾收集器 分代模型 适用于新生代&#xff1a; serial parNew parallel Scaavenge 适用于老年代&#xff1a; CMS serial Old(msc) paraller Old 分区模型 适用于超大容量&#xff1a; G1 分代模型 serial /serial Old收集器 1.单线程收集器 2.收集时会暂停其他线程&…

剑指offer C ++双栈实现队列

1. 基础 队列&#xff1a;先进先出&#xff0c;即插入数据在队尾进行&#xff0c;删除数据在队头进行&#xff1b; 栈&#xff1a;后进先出&#xff0c;即插入与删除数据均在栈顶进行。 2. 思路 两个栈实现一个队列的思想&#xff1a;用pushStack栈作为push数据的栈&#xff…

使用canvas绘制超炫时钟

HTML5 Canvas相当于一个画板&#xff0c;你可以在Canvas绘制任意的东西&#xff0c;今天要分享一款利用HTML5 Canvas绘制的超炫时钟的方法及代码&#xff0c;非常的漂亮&#xff0c;这里推荐给大家 代码地址 使用canvas绘制超炫时钟

react中JSX的详解

目录 JSX的本质及其与JavaScript的关系探究 一、JSX的本质 二、JSX与JavaScript的关系 三、为什么要使用JSX 四、不使用JSX的后果 五、JSX背后的功能模块 JSX的本质及其与JavaScript的关系探究 在React开发中&#xff0c;JSX是一个不可或缺的部分。那么&#xff0c;JSX的…

LeetCode102题:二叉树的层序遍历(python3)

代码思路&#xff1a;使用队列先进先出的特性&#xff0c;queue[]不为空进入for循环&#xff0c;tmp存储每层的节点&#xff0c;将结果添加至res[]中。 python中使用collections中的双端队列deque()&#xff0c;其popleft()方法可达到O(1)时间复杂度。 class Solution:def lev…

数据结构 第1章:绪论

文章目录 1. 绪论1.1. 数据结构 1.2. 算法1.2.1. 算法的基本概念1.2.2. 算法的时间复杂度1.2.3. 算法的空间复杂度 1. 绪论 程序 数据结构 算法 1.1. 数据结构 数据&#xff1a;是对客观事物的符号表示&#xff0c;在计算机科学中是指所有能输入到计算机中并被计算机程序处理…

【机器学习300问】33、决策树是如何进行特征选择的?

还记得我在【机器学习300问】的第28问里谈到的&#xff0c;看决策树的定义不就是if-else语句吗怎么被称为机器学习模型&#xff1f;其中最重要的两点就是决策树算法要能够自己回答下面两问题&#xff1a; 该选哪些特征 特征选择该选哪个阈值 阈值确定 今天这篇文章承接上文&…

探秘高校线上心理咨询室:Java+SpringBoot的实践

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

蓝桥·算法双周赛|第七场分级赛——小白入门赛

&#x1f525;博客介绍&#xff1a; 27dCnc &#x1f3a5;系列专栏&#xff1a; <<数据结构与算法>> << 算法入门>> << C项目>> &#x1f3a5; 当前专栏: << 算法入门>> 专题 : 数据结构帮助小白快速入门算法 &#x1f4…

C#四部曲(知识补充)

Unity跨平台原理 .Net相关 只要编写的时候遵循.NET的这些规则&#xff0c;就能在.NET平台下通用 各种源码→根据.NET规范编写→(虚拟机)生成CIL中间码(保存在程序集中)→转成操作系统原代码 跨语言← 跨平台↓ Unity跨平台原理&#xff08;Mono&#xff09; c#脚本→MonoC#编…

CCCorelib 点云曲面特征(CloudCompare内置算法库)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 这里基于每个点的邻域协方差来获取点云中具有的曲面几何特征的点,计算方式如下图所示: 二、实现代码 // CloudCompare #include <CCCoreLib/PointCloudTpl.h> #include <CCCoreLib/

使用 PlayFab 服务器托管的 5 个步骤

在本教程中,你将了解如何使用 Unity、镜像网络和 PlayFab 服务器托管来构建在线多人游戏。玩家不能再位于同一个本地网络上。他们将连接到托管在云中的专用服务器,这使得他们即使相距很远也可以一起玩。 架构概述 下图显示了我们将构建的架构。 玩家将使用他们的客户端并连…

2024年G3锅炉水处理证模拟考试题库及G3锅炉水处理理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年G3锅炉水处理证模拟考试题库及G3锅炉水处理理论考试试题是由安全生产模拟考试一点通提供&#xff0c;G3锅炉水处理证模拟考试题库是根据G3锅炉水处理最新版教材&#xff0c;G3锅炉水处理大纲整理而成&#xff0…

读算法的陷阱:超级平台、算法垄断与场景欺骗笔记08_行为歧视

1. 常见的报价方式 1.1. 水滴定价&#xff08;Drip Pricing&#xff09; 1.1.1. 用一个较低的初始价格吸引消费者入局&#xff0c;之后再不断收取附加费用 1.2. 打折促销 1.2.1. 在一个远被高估的原价上制造折扣价格的魅力 1.2…

Hive面经

hive原理 Hive 内部表和外部表的区别Hive 有索引吗运维如何对 Hive 进行调度ORC、Parquet 等列式存储的优点数据建模用的哪些模型&#xff1f;1. 星型模型2. 雪花模型3. 星座模型 为什么要对数据仓库分层&#xff1f;使用过 Hive 解析 JSON 串吗sort by 和 order by 的区别数据…

自动化运维工具Ansible

一.Ansible基本内容 1.定义 Ansible是基于模块工作的&#xff0c;只是提供了一种运行框架&#xff0c;本身没有完成任务的能力&#xff0c;真正操作的是Anisble的模块。每个模块都是独立的、实现了批量系统配置、批量程序部署、批量运行命令等功能。 2.特点与优势 优势&…

【Python爬虫神器揭秘】手把手教你安装配置Scrapy,高效抓取网络数据

1、 引言 在大数据时代&#xff0c;网络上的信息犹如海洋般浩瀚。想要在这片海洋里挖掘宝藏&#xff0c;一款强大的工具必不可少。今天我们要带大家深入探索的就是Python界鼎鼎大名的爬虫框架——Scrapy。无论你是数据分析师、研究员还是开发者&#xff0c;学会利用Scrapy来自…

基于单片机的IC 卡门禁系统设计

摘要:针对传统门锁钥匙易丢失、配置不便和忘记携带等问题,提出了一种基于STC89C52 的IC 卡门禁系统设计。该系统以STC89C52 单片机为核心来控制电子锁模块的开关。主要过程是由RFID 模块读取IC卡ID 并通过串口发送至STC89C52 单片机模块,STC89C52 单片机模块可以实现在线对I…

如果电脑缺少dll文件怎么解决?如何快速解决dll丢失问题

最近有小伙伴问电脑老是缺少dll文件&#xff0c;这种问题到底要怎么去解决呢&#xff1f;其实这种现象是正常的&#xff0c;为啥说正常呢&#xff0c;下面我们会给大家详细的讲解dll为啥会缺少&#xff0c;然后还会讲解电脑缺少dll文件怎么解决的方法&#xff0c;好了&#xff…

ARM学习(25)链接装载高阶认识

ARM学习&#xff08;25&#xff09;链接装载高阶认识 1、例子引出 笔者先引入几个编译链接的例子来介绍一下&#xff1a; 声明无效&#xff1a;declared implicitly&#xff1f;&#xff0c;属于编译错误还是链接错误&#xff1f; 编译阶段的错误&#xff0c;属于编译错误&am…