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>


相关文章
|
10月前
|
前端开发 JavaScript 开发者
JavaScript:无处不在的Web语言
JavaScript:无处不在的Web语言
|
11月前
|
并行计算 前端开发 JavaScript
Web Worker:让前端飞起来的隐形引擎
在现代 Web 开发中,前端性能优化是一个至关重要的课题,尤其是对于计算密集型的应用,如图像处理、视频处理、大规模数据分析等任务。单线程的 JavaScript 引擎常常成为性能瓶颈,导致应用变得迟缓。Web Worker,作为一种强大的技术,使得前端能够在后台进行并行计算,从而实现高效的任务处理,不影响主线程的运行和用户的交互体验。
852 108
|
10月前
|
前端开发 JavaScript 开发者
JavaScript:构建动态Web的核心力量
JavaScript:构建动态Web的核心力量
|
前端开发 算法 API
构建高性能图像处理Web应用:Next.js与TailwindCSS实践
本文分享了构建在线图像黑白转换工具的技术实践,涵盖技术栈选择、架构设计与性能优化。项目采用Next.js提供优秀的SSR性能和SEO支持,TailwindCSS加速UI开发,WebAssembly实现高性能图像处理算法。通过渐进式处理、WebWorker隔离及内存管理等策略,解决大图像处理性能瓶颈,并确保跨浏览器兼容性和移动设备优化。实际应用案例展示了其即时处理、高质量输出和客户端隐私保护等特点。未来计划引入WebGPU加速、AI增强等功能,进一步提升用户体验。此技术栈为Web图像处理应用提供了高效可行的解决方案。
|
10月前
|
JavaScript 前端开发 开发者
JavaScript:驱动现代Web的核心引擎
JavaScript:驱动现代Web的核心引擎
|
10月前
|
JavaScript 前端开发 物联网
JavaScript:驱动现代Web的核心引擎
JavaScript:驱动现代Web的核心引擎
|
JavaScript 前端开发 API
|
Web App开发 编解码 移动开发
零基础音视频入门:你所不知道的Web前端音视频知识
本文回顾了Web端音视频的发展历程,同时还介绍了视频的编码、帧率、比特率等概念,提到了Canvas作为视频播放的替代方案,以及FFmpeg在音视频处理中的重要作用等知识。
364 1
|
JSON JavaScript 前端开发
JavaScript入门干货:蓝桥杯Web组分章学习笔记(基于蓝桥云课《JavaScript基础入门》)
这是一份详尽的JavaScript学习笔记,涵盖基础到进阶内容。包括变量、运算符、数组、字符串操作,DOM/BOM事件处理,内置对象(如Array、Date、Math)用法,JSON格式解析,以及函数作用域与闭包等核心概念。同时深入探讨值类型和引用类型的差异、异常处理机制,并介绍函数高级特性如call/apply/bind方法、递归及arguments对象。代码按章节分点整理,注释细致,适合初学者系统掌握JavaScript编程知识。
237 2
|
前端开发 JavaScript 数据可视化
58K star!这个让网页动起来的JS库,前端工程师直呼真香!
Anime.js 是一款轻量级但功能强大的JavaScript动画引擎,它能够以最简单的方式为网页元素添加令人惊艳的动效。这个项目在GitHub上已经获得58,000+星标,被广泛应用于电商页面、数据可视化、游戏开发等场景。
691 8

热门文章

最新文章