web前端学习(四十)——JavaScript DOM事件(对事件做出反应)

简介: web前端学习(四十)——JavaScript DOM事件(对事件做出反应)

1.开篇


HTML DOM 使 JavaScript 有能力对 HTML 事件做出反应。对事件做出反应

我们可以在事件发生时执行 JavaScript,比如当用户在 HTML 元素上点击时。

如需在用户点击某个元素时执行代码,请向一个 HTML 事件属性添加 JavaScript 代码:

οnclick=JavaScript

HTML事件的例子:

·       当用户点击鼠标时

·       当网页已加载时

·       当图像已加载时

·       当鼠标移动到元素上时

·       当输入字段被改变时

·       当提交 HTML 表单时

·       当用户触发按键时

例如下面这个小实例,当用户在 <h2> 元素上点击时,会改变其内容:👇👇👇 

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>JS简单学习</title>
    <script>
      function changeText(str) {
        str.innerHTML="JavaScript";
      }
    </script>
  </head>
  <body>
    <h2 onclick="changeText(this)">点击文本</h2>
  </body>
</html>

2.使用HTML DOM分配事件


HTML DOM 允许您使用 JavaScript 来向 HTML 元素分配事件: 

2.1 onclick事件

当完成鼠标点击时,会触发 onclick 事件。

在下面的例子中,名为 displayDate 的函数被分配给 id="myBtn" HTML 元素。按钮点击时Javascript函数将会被执行。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>JS简单学习</title>
  </head>
  <body>
    <p>点击按钮执行 <em>displayDate()</em> 函数.</p>
    <button type="button" id="myBtn">点这里</button>
    <script>
      function displayDate() {
        document.getElementById("demo").innerHTML=Date();
      }
      document.getElementById("myBtn").onclick=function(){displayDate()};
    </script>
    <p id="demo"></p>
  </body>
</html>

2.2 onload onunload 事件

onload onunload 事件会在用户进入或离开页面时被触发。

onload事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确版本。

onload onunload 事件可用于处理 cookie

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>JS简单学习</title>
  </head>
  <body onload="checkCookies()">
    <script>
      function checkCookies() {
        if(navigator.cookieEnabled==true) {
          alert("Cookies 可用");
        }else {
          alert("Cookies 不可用");
        }
      }
    </script>
    <p>弹窗-提示浏览器 cookie 是否可用。</p>
  </body>
</html>

2.3 onchange 事件

onchange事件常结合对输入字段的验证来使用。

下面是一个如何使用 onchange 的例子。当用户改变输入字段的内容时,会调用 upperCase() 函数。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>JS简单学习</title>
  </head>
  <body>
    输入你的名字:<input type="text" id="yourname" onchange="myFunction()" />
    <p>当你离开输入框后,函数将被触发,将小写字母转为大写字母。</p>
    <script>
      function myFunction() {
        var str=document.getElementById("yourname");
        str.value=str.value.toUpperCase();
      }
    </script>
  </body>
</html>

2.4 onmouseover onmouseout 事件

onmouseover onmouseout 事件可用于在用户的鼠标移至 HTML 元素上方或移出元素时触发函数。 

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>JS简单学习</title>
    <style type="text/css">
      div {
        background-color: aqua;
        width: 120px;
        height: 20px;
        padding: 40px;
      }
    </style>
  </head>
  <body>
    <div onmouseover="mOver(this)" onmouseout="mOut(this)">Hello World!!!</div>
    <script>
      function mOver(obj) {
        obj.innerHTML="JavaScript!!!";
      }
      function mOut(obj) {
        obj.innerHTML="Hello World!!!";
      }
    </script>
  </body>
</html>

2.5 onmousedown onmouseup 事件

onmousedownonmouseup 以及 onclick 构成了鼠标点击事件的所有部分。首先当点击鼠标按钮时,会触发onmousedown事件,当释放鼠标按钮时,会触发 onmouseup 事件。 

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>JS简单学习</title>
  </head>
  <body>
    <img id="myimage" onmousedown="lighton()" onmouseup="lightoff()" src="img/img/close.png" width="100" height="160" />
    <p>鼠标点击不释放,灯会一直亮着!!!</p>
    <script>
      function lighton() {
        document.getElementById("myimage").src="img/img/open.png";
      }
      function lightoff() {
        document.getElementById("myimage").src="img/img/close.png";
      }
    </script>
  </body>
</html>


相关文章
|
14天前
|
编解码 前端开发 JavaScript
构建高效响应式Web界面:现代前端框架的比较
【4月更文挑战第9天】在移动设备和多样屏幕尺寸盛行的时代,构建能够适应不同视口的响应式Web界面变得至关重要。本文深入探讨了几种流行的前端框架——Bootstrap、Foundation和Tailwind CSS,分析它们在创建响应式设计中的优势与局限。通过对比这些框架的栅格系统、组件库和定制化能力,开发者可以更好地理解如何选择合适的工具来优化前端开发流程,并最终实现高性能、跨平台兼容的用户界面。
|
14天前
|
前端开发 JavaScript 关系型数据库
从前端到后端:构建现代化Web应用的技术探索
在当今互联网时代,Web应用的开发已成为了各行各业不可或缺的一部分。从前端到后端,这篇文章将带你深入探索如何构建现代化的Web应用。我们将介绍多种技术,包括前端开发、后端开发以及各种编程语言(如Java、Python、C、PHP、Go)和数据库,帮助你了解如何利用这些技术构建出高效、安全和可扩展的Web应用。
|
15天前
|
编解码 前端开发 JavaScript
Web 前端开发中的最佳实践
本文将介绍 Web 前端开发中的最佳实践,包括代码组织、性能优化、响应式设计和用户体验等方面。通过遵循这些实践,开发人员可以提高开发效率,优化用户体验,并减少潜在的问题和错误。
|
8天前
|
前端开发 搜索推荐 数据安全/隐私保护
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
18 1
|
8天前
|
JavaScript 前端开发 应用服务中间件
node.js之第一天学习
node.js之第一天学习
|
8天前
|
前端开发 JavaScript vr&ar
前端新技术探索:WebAssembly、Web Components与WebVR/AR
【4月更文挑战第12天】WebAssembly、Web Components和WebVR/AR正重塑Web应用的未来。WebAssembly允许C/C++等语言在Web上高效运行,提供接近原生的性能,如游戏引擎。Web Components通过Custom Elements和Shadow DOM实现可复用的自定义UI组件,提升模块化开发。WebVR/AR(现WebXR)则让VR/AR体验无需额外应用,直接在浏览器中实现。掌握这些技术对前端开发者至关重要。
15 3
|
17天前
|
前端开发 JavaScript Java
通过学习mayfly,我学会了前端如何优雅设计字典值
`shigen`是一位擅长多种编程语言的博主,他在探索[mayfly-go](https://juejin.cn/post/7319365035552309248)项目后,发现了对枚举值管理的优雅设计。他分享了如何将字典和枚举值结构化,使用Vue+typescript实现更易维护的代码。通过创建`TagType`和`EnumValue`类,以及提供静态方法,实现了模块化和简洁的字典处理。示例展示了如何在页面中高效引用和显示字典数据,提高了代码的可读性和可维护性。
17 3
通过学习mayfly,我学会了前端如何优雅设计字典值
|
21天前
|
人工智能 前端开发 JavaScript
【前端设计】HTML+CSS+JavaScript基本特性
【前端设计】HTML+CSS+JavaScript基本特性
|
30天前
|
机器学习/深度学习 前端开发 算法
利用机器学习优化Web前端性能的探索与实践
本文将介绍如何利用机器学习技术来优化Web前端性能,探讨机器学习在前端开发中的应用,以及通过实际案例展示机器学习算法对前端性能优化的效果。通过结合前端技术和机器学习,提升Web应用的用户体验和性能表现。
|
1月前
|
移动开发 前端开发 HTML5
Web前端全栈HTML5通向大神之路
本套课程共三大阶段,六大部分,是WEB前端、混合开发与全栈开发必须要掌握的技能,从基础到实践,是从编程小白成长为全栈大神的最佳教程!
41 3
Web前端全栈HTML5通向大神之路