自学内容网 自学内容网

JavaScript--常用事件

一.事件概念

  • 介绍:JavaScript 事件是在浏览器中发生的动作,例如用户点击按钮、页面加载完成、鼠标移动、键盘输入等,这些事件可以被 JavaScript 代码捕获并执行相应的操作。

二.事件处理程序

1.事件的基本使用
  • 使用方式:<html各种标签 属性 on事件名称="JS代码(事件处理程序)" />​

  • 具体示例:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>事件的基本使用</title>
    </head>
    <body>
    <input type="button" value="button" onclick="alert('hello world');">
    </body>
    </html>
    
    • PS:直接在 HTML 标签中编写 JS 代码,此方式功能上正常,但是代码的可读性较差。
2.使用函数作为事件处理程序
  • <!DOCTYPE html>
    <html>
    <head>
     <meta charset="utf-8">
     <title>函数作为事件处理程序</title>
     <script type="text/javascript">
     function hello(){
     alert("hello world");
    }
    </script>
    </head>
    <body>
    <input type="button" value="button" onclick="hello()">
    </body>
    </html>
    
    • PS:先定义一个函数,然后在HTML标签中对其进行引用。

三.常用事件

1.页面事件
A.onload事件
  • 介绍:当页面的所有资源,包括 HTML 文档、CSS 样式表、JavaScript 脚本、图片等都已完全加载并解析完成后触发。

  • 示例:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>onload事件</title>
    </head>
    <body>
      <script>
        window.onload = function () {
          // 页面加载完成后弹出提示框
          alert('页面已加载完成');
        };
      </script>
    </body>
    </html>
    
B.onresize事件
  • 介绍:当浏览器窗口的大小发生改变时触发,无论是用户手动调整窗口大小,还是通过代码改变窗口尺寸,都会触发该事件。

  • 示例:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>onresize事件</title>
    </head>
    <body>
        <script>
          window.onresize = function () {
            // 获取当前窗口宽度
            var windowWidth = window.innerWidth;
            // 获取当前窗口高度
            var windowHeight = window.innerHeight;
            console.log('窗口大小改变:宽度为 ' + windowWidth + 'px,高度为 ' + windowHeight + 'px');
          };
        </script>
    </body>
    </html>
    
2.焦点事件
A.onfocus 事件(获取焦点)
  • 介绍:当一个元素(通常是表单元素,如文本框、输入框、文本区域等)获得焦点时触发。

  • 示例:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>onfocus事件</title>
    </head>
    <body>
    <input type="text" id="myInput" value="请输入内容">
    <script>
    var input = document.getElementById('myInput');
    input.onfocus = function() {
    // 当元素获得焦点时,清空文本框并改变边框颜色
    this.value = '';
    this.style.border = '2px solid blue';
    };
    </script>
    </body>
    </html>
    
    • 在上述代码中,当用户将焦点放到 id​ 为 myInput​ 的输入框时:

      • 首先,使用 document.getElementById('myInput')​ 获取输入框元素。
      • 然后,当该元素获得焦点时,触发 onfocus​ 事件,调用对应的函数。
      • 在函数中,将输入框的值清空(this.value = '';​),并将边框设置为 2px​ 宽的蓝色边框(this.style.border = '2px solid blue';​)。
B.onblur事件(失去焦点)
  • 介绍:当一个元素失去焦点时触发,也就是用户将焦点从该元素移到其他元素上时。

  • 示例:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>onblur事件</title>
    </head>
    <body>
    <input type="text" id="myInput" value="请输入内容">
    <script>
        var input = document.getElementById('myInput');
        input.onblur = function() {
          // 当元素失去焦点时,检查输入是否为空
          if (this.value === '') {
            this.value = '请输入内容';
            this.style.border = '1px solid #ccc';
          } else {
            this.style.border = '1px solid green';
          }
        };
      </script>
    </body>
    </html>
    
    • 在上述代码中,当用户将焦点从 id​ 为 myInput​ 的输入框移开时:

      • 同样先通过 document.getElementById('myInput')​ 获取元素。
      • 当该元素失去焦点时,触发 onblur​ 事件,调用相应函数。
      • 函数中检查输入框的值是否为空,如果为空,则将其值重置为 请输入内容​,并将边框设置为 1px​ 宽的灰色边框(1px solid #ccc​);如果不为空,则将边框设置为 1px​ 宽的绿色边框(1px solid green​)。
3.点击事件
A.onclick 单击事件
  • 介绍:当用户在元素上按下并释放鼠标左键时触发。此事件可以绑定到各种 HTML 元素上,包括但不限于按钮(<button>​)、<div>​、<p>​、<span>​、<a>​ 等。

  • 示例:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>onclick事件</title>
    </head>
    <body>
    <div id="myDiv">点击我</div>
      <script>
        var div = document.getElementById('myDiv');
        div.onclick = function() {
          // 当用户点击 div 元素时,改变元素的背景颜色
          this.style.backgroundColor = 'yellow';
        };
      </script>
    </body>
    </html>
    
    • 在上述代码中:

      • 使用 document.getElementById('myDiv')​ 获取 id​ 为 myDiv​ 的 <div>​ 元素。
      • 当用户点击该元素时,触发 onclick​ 事件,调用对应的函数。
      • 函数中使用 this.style.backgroundColor = 'yellow';​ 将元素的背景颜色更改为黄色。
B.ondblclick 双击事件
  • 介绍:当用户在元素上快速连续点击两次鼠标左键时触发。与 onclick​ 类似,也可以绑定到多种 HTML 元素上。

  • 示例:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>ondblclick事件</title>
    </head>
    <body>
    <div id="myDiv">双击我</div>
      <script>
        var div = document.getElementById('myDiv');
        div.ondblclick = function() {
          // 当用户双击 div 元素时,显示一个提示信息
          alert('你双击了这个元素');
        };
      </script>
    </body>
    </html>
    
    • 在上述代码中:

      • 当用户双击 id​ 为 myDiv​ 的 <div>​ 元素时,会触发 ondblclick​ 事件,显示一个提示信息。
4.鼠标事件
A.onmouseover 事件(鼠标滑入)
  • 介绍:当鼠标指针移入元素的可见区域时触发。该事件可应用于几乎所有的 HTML 元素,包括但不限于 <div>​、<span>​、<button>​、<img>​ 等。

  • 示例:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>onmouseover事件</title>
    </head>
    <body>
      <div id="myDiv" style="width: 100px; height: 100px; background-color: red;">鼠标移到我上面</div>
      <script>
        var div = document.getElementById('myDiv');
        div.onmouseover = function() {
          this.style.backgroundColor = 'blue';
        };
      </script>
    </body>
    </html>
    <!DOCTYPE html>
    
    • PS:当鼠标移入 id​ 为 myDiv​ 的 <div>​ 元素时,其背景颜色将从红色变为蓝色。
B.onmouseout 事件(鼠标滑出)
  • 介绍:当鼠标指针移出元素的可见区域时触发。

  • 示例:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>onmouseout事件</title>
    </head>
    <body>
      <div id="myDiv" style="width: 100px; height: 100px; background-color: red;">鼠标移到我上面</div>
      <script>
        var div = document.getElementById('myDiv');
        div.onmouseover = function() {
    this.style.backgroundColor = 'blue';
        };
    div.onmouseout = function() {
    this.style.backgroundColor = 'red';
    }
      </script>
    </body>
    </html>
    <!DOCTYPE html>
    
    • PS:与 onmouseover​ 配合使用,当鼠标移出 id​ 为 myDiv​ 的 <div>​ 元素时,其背景颜色将从蓝色恢复为红色。
C.onmousedown 事件(鼠标按下)
  • 介绍:当用户在元素上按下鼠标按钮(通常是左键)时触发。

  • 示例:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>onmousedown事件</title>
    </head>
    <body>
        <div id="myDiv" style="width: 100px; height: 100px; background-color: red;">点击我</div>
        <script>
          var div = document.getElementById('myDiv');
          div.onmousedown = function() {
            this.style.backgroundColor = 'green';
          };
        </script>
    </body>
    </html>
    <!DOCTYPE html>
    
    • PS:当用户将鼠标按钮在 id​ 为 myDiv​ 的 <div>​ 元素上按下时,其背景颜色将变为绿色。
D.onmouseup 事件(鼠标抬起)
  • 介绍:当用户释放鼠标按钮(通常是左键)时触发。

  • 示例:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>onmouseup事件</title>
    </head>
    <body>
      <div id="myDiv" style="width: 100px; height: 100px; background-color: red;">点击我</div>
      <script>
        var div = document.getElementById('myDiv');
        div.onmousedown = function() {
          this.style.backgroundColor = 'green';
        };
        div.onmouseup = function() {
          this.style.backgroundColor = 'red';
        };
      </script>
    </body>
    </html>
    
    • PS:与 onmousedown​ 配合使用,当用户将鼠标按钮从 id​ 为 myDiv​ 的 <div>​ 元素上释放时,其背景颜色将从绿色恢复为红色。
E.onmousemove 事件(鼠标滑动)
  • 介绍:当鼠标指针在元素上移动时触发。这个事件会频繁触发,因此在处理该事件时要注意性能优化,避免过多的计算和操作。

  • 示例:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>onmousemove事件</title>
    </head>
    <body>
      <div id="myDiv" style="width: 100px; height: 100px; background-color: red;"></div>
      <script>
        var div = document.getElementById('myDiv');
        div.onmousemove = function(event) {
          console.log('鼠标位置:X=' + event.clientX + ', Y=' + event.clientY);
        };
      </script>
    </body>
    </html>
    
    • PS:当鼠标在 id​ 为 myDiv​ 的 <div>​ 元素上移动时,会在控制台打印出鼠标指针的当前位置(event.clientX​ 和 event.clientY​)。

原文地址:https://blog.csdn.net/qq_37107430/article/details/145220731

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!