前端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').value
        const password = document.getElementById('password').value

        if (username && password) {
          // 执行提交逻辑,比如向服务器发送注册请求
          console.log('提交表单 - 用户名:' + username + ',密码:' + password)
        } else {
          alert('用户名和密码不能为空')
        }
      })
    </script>
  </body>
</html>

请添加图片描述

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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

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

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

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《考虑碳捕集机组与氢储能系统协调运行的源荷储低碳经济调度》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

ansible-playbook的角色(role)

1前言 角色目录如下&#xff08;分别为httpd角色和nginx角色&#xff09; handlers/ &#xff1a;至少应该包含一个名为 main.yml 的文件&#xff1b; 其它的文件需要在此文件中通过include 进行包含 vars/ &#xff1a;定义变量&#xff0c;至少应该包含一个名为 main.yml 的…

React Hooks 那些事儿

翻了波之前写的文章还有笔记&#xff0c;发现关于前端的文章并不多&#xff08;好歹也划水做过点前端开发&#xff09;。巧了&#xff0c;最近没什么好话题可写&#xff0c;做下 React Hooks 学习笔记吧。 Effect Hook 不得不说 Hook 的出现降低了我们在 React 中处理副作用&…

极简云商业版 开源源码

简化版的云商业源码已经以开源形式发布了&#xff0c;现在可以解绑卡密和查询卡密。总体而言&#xff0c;这个版本已经相当完善了。在对接示例网盘中有一个用户注册的例子&#xff0c;需要配置一个邮箱。您可以在网页上启用QQ邮箱的标准版SMTP&#xff0c;并生成一个授权码。 …

【Spring】学习Spring框架那点小事儿

Spring作者&#xff1a;Rod Johnson Rod Johnson 是一位软件开发人员和作家&#xff0c;他在软件开发领域有着广泛的影响力。他出生于澳大利亚&#xff0c;拥有计算机科学和音乐双学位&#xff08;能写出有优雅的代码一定有艺术细胞&#xff09;。 Rod Johnson 在 2002 年出版…

保研复习数据结构记(7)--散列查找(哈希表)

哈希表有什么特点&#xff1f;数据元素的关键字与其存储地址直接相关&#xff08;通过哈希函数相关&#xff09;&#xff0c;典型的用空间换时间的算法处理冲突的方法&#xff1f;拉链法&#xff08;链地址法&#xff09;&#xff0c;开放定址法&#xff0c;再散列法什么是查找…

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

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

【YOLOv9】训练模型权重 YOLOv9.pt 重新参数化轻量转为 YOLOv9-converted.pt

【YOLOv9】训练模型权重 YOLOv9.pt 重新参数化轻量转为 YOLOv9-converted.pt 1. 模型权重准备2. 模型重新参数化2.1 文件准备2.2 参数修改2.3 重新参数化过程 3. 重新参数化后模型推理3.1 推理超参数配置3.2 模型推理及对比 4. onnx 模型导出&#xff08;补充内容&#xff09;4…

在WSL2中安装多个Ubuntu教程

文章目录 前言一、前期准备1、WSL安装2、Docker安装 二、安装第二个Ubuntu系统1.切换为WSL22.获取Ubuntu16.04的tar文件从容器中导出tar 3. 将tar文件导入WSL4. 设置默认用户 总结 前言 适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能&#xff0c;可用于在 Wind…

指针篇章-(5)+最终思维导图

sizeof和strlen的对比 sizeof不是函数 侧面证明sizeof不是函数 如果是函数 应该需要有括号 不能落下来 strlen 只针对字符串 包含头文件 string.h 并且这个是个函数 随机数值 sizeof里面有表达式的话 表达式里面是不参与计算的 下面的s求出的是4 就是因为是不参与计算的 不…

03_渲染进程调用node

我们先创建一个文件夹及文件&#xff0c;并且在 html 引入 JS 文件。 在 render.js 里面输入以下内容&#xff1a; let fs require(fs) // let是在当前代码块有效console.log(fs) // 将fs对象的内容打印到控制台供调试和查看 fs 模块&#xff1a;对文件系统进行操作&#xf…

七月论文审稿GPT第3.1版和第3.2版:通过paper-review数据集分别微调Mistral、gemma

前言 我司第二项目组一直在迭代论文审稿GPT(对应的第二项目组成员除我之外&#xff0c;包括&#xff1a;阿荀、阿李、鸿飞、文弱等人)&#xff0c;比如 七月论文审稿GPT第1版&#xff1a;通过3万多篇paper和10多万的review数据微调RWKV七月论文审稿GPT第2版&#xff1a;用一万…

使用Flask快速搭建轻量级Web应用【第127篇—Flask】

使用Flask快速搭建轻量级Web应用 在Web开发领域&#xff0c;选择适合项目需求的框架至关重要。Flask&#xff0c;一个轻量级的Python Web框架&#xff0c;以其简洁、灵活和易扩展的特性而备受开发者青睐。本文将介绍如何使用Flask迅速搭建一个轻量级的Web应用&#xff0c;并通过…

FreeRTOS学习笔记-基于stm32(5)列表和列表项

一、列表与列表项简介 列表是FreeRTOS中的一种数据结构&#xff0c;类似双向循环链表。用来跟踪FreeRTOS中的任务。列表项就是存放在列表中的项目。 二、列表 列表结构体&#xff1a; typedef struct xLIST {listFIRST_LIST_INTEGRITY_CHECK_VALUE //校验值c…

Unity 显示MeshRenderer的渲染层级

Unity 显示MeshRenderer的渲染层级 前言源码MeshRendererInspectorSkinnedMeshRendererInspector 参考 前言 Mesh Renderer和Skinned Mesh Renderer组件默认不显示Order&#xff0c;找了个工具显示一下。 源码 下面两个代码放入Editor文件夹中 MeshRendererInspector Me…

ChatGPT Prompt 的原理总结

ChatGPT Prompt 的原理总结 ChatGPT Prompt 是 OpenAI 开发的大型语言模型 ChatGPT 的一种使用方式。通过 Prompt&#xff0c;用户可以引导 ChatGPT 生成特定内容&#xff0c;例如回答问题、写故事、写代码等等。 Prompt 的原理 Prompt 本质上是一段文本&#xff0c;它告诉 C…

人工智能在增强数据安全方面的作用

近年来&#xff0c;人工智能&#xff08;AI&#xff09;的力量已被证明是无与伦比的。它不再是我们想象的主题。人工智能已经成为现实&#xff0c;并且越来越清楚地表明它可以让世界变得更美好。但人工智能能帮助我们增强数据安全吗&#xff1f; 由于技术的日益普及&#xff0…

Java JUC 笔记(2)

Java JUC 笔记&#xff08;2&#xff09; 锁框架 JDK5以后增加了Lock接口用来实现锁功能&#xff0c;其提供了与synchronized类似的同步功能&#xff0c;但是在使用时手动的获取和释放锁 Lock和Condition锁 这里的锁与synchronized锁不太一样&#xff0c;我们可以认为是Loc…

递归与递推

递归 92. 递归实现指数型枚举 - AcWing题库 import java.util.*;public class Main{static int N 16, n;static int[] st new int[N];//st[x] 等于0表示还没考虑到它&#xff0c;等于1表示选它&#xff0c;等于2表示不选它public static void dfs(int u){if(u > n){for…