我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JavaScript事件类型怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaScript事件类型怎么使用

本篇内容介绍了“JavaScript事件类型怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

在JavaScript中,事件类型指的是事件的触发方式,简单理解就是触发了什么事件;事件类型有:UI事件、焦点事件、鼠标与滚轮事件、键盘与文本事件、复合事件、变动事件、HTML5事件、设备事件、触摸与手势事件等。

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

事件是指可以被JavaScript侦测到的行为,是一种“触发-响应”的机制。这些行为指的就是页面的加载、鼠标的单击/双击、鼠标指针滑某个区域等具体的动作,它对实现页面的交互效果起着非常重要的作用。

事件由事件源、事件类型和事件处理程序3部分构成,又被称为“事件三要素”。

  • 事件源:触发(被)事件的元素

  • 事件类型:事件的触发方式(例如鼠标点击或键盘点击)

  • 事件处理程序:事件触发后要执行的代码(函数形式)

以上的三个要素可以简单理解为“谁触发了事件”、“触发了什么事件”、“触发了事件之后要做什么”。

Web浏览器中可能发生的事件有很多类型。这里我将主要将下面几种常用的事件类型:

  • UI事件

  • 焦点事件

  • 鼠标与滚轮事件

  • 键盘与文本事件

  • 复合事件

  • 变动事件

  • HTML5事件

  • 设备事件

  • 触摸与手势事件

第一部分:UI事件

  UI事件中UI即(User Interface,用户界面),当用户与页面桑拿的元素交互时触发。

  UI事件中主要包括load,unload,abort,error,select,resize,scroll事件。

1.load事件

   此事件为当页面完全加载完之后(包括所有的图像、js文件、css文件等外部资源),就会触发window上面的load事件。

   这个事件是JavaScript中最常用的事件,比如我们经常会使用window.onload=function(){};这种形式,即当页面完全加载完之后执行其中的函数。

     另外,之前一直都不知道,这个事件还可以用在其他元素上,比如图像元素,如下所示:

<img class="lazy" data-src="smile.png" onload="alert('loaded')">  

   即当图片完全加载出来之后会有弹窗。当然也可以使用JS来实现,如下所示:

var img=document.getElementById("img");
EventUtil.addHandler(img,"load",function(){
      event=EventUtil.getEvent(event);
      alert(EventUtil.getTarget(event).class="lazy" data-src);
});

2.unload事件

   显然,这个事件是与load事件相对的。在文档被完全卸载后触发。用户从一个页面切换到另一个页面就会触发unload时间。利用这个事件最多的情况是清楚引用,避免内存泄漏。

   这个事件同样有两种方式来指定。一种是JavaScript方式,使用EventUtil.addHandler();另一种就是在body元素中添加一个特性。

     值得注意的是,一定要小心编写onload事件中的代码,因为它是在页面卸载后才触发,所以说页面加载后存在的那些对象,在onload触发之后就不一定存在了!

<body onload="alert('changed')">

3.resize事件

    当调整浏览器的窗口到一个新的宽度或高度时,就会触发resize事件。这个事件在window(窗口)上面触发。因此同样可以通过JS或者body元素中的onresize特性来指定处理程序。  

<body onresize="alert('changed')">

    写了这句代码,那么浏览器的大小发生改变时就会弹出窗口。

4.scroll事件

  这个事件会在文档被滚动期间重复被触发,所以应当尽量保持事件处理程序的代码简单。

第二部分:焦点事件

  焦点事件会在页面元素获得或失去焦点时触发。主要有下面几种:

  • blur   在元素失去焦点时触发。这个事件不冒泡,所有浏览器都支持。

  • focus   在元素获得焦点时触发。这个事件不冒泡,所有浏览器都支持。

  • focusin  在元素获得焦点时触发。这个事件冒泡,某些浏览器不支持。

  • focusout 在元素失去焦点时触发。这个事件冒泡,某些浏览器不支持。

  注意:即使blur和focus不冒泡,也可以在捕获阶段侦听到他们。

第三部分:鼠标与滚轮事件

  鼠标事件是Web开发中最常用的一类事件,因为鼠标是最主要的定位设备。

  • click---用户单击鼠标左键或按下回车键触发

  • dbclick---用户双击鼠标左键触发。

  • mousedown---在用户按下了任意鼠标按钮时触发。

  • mouseenter---在鼠标光标从元素外部首次移动到元素范围内时触发。此事件不冒泡

  • mouseleave---元素上方的光标移动到元素范围之外时触发。不冒泡

  • mousemove---光标在元素的内部不断的移动时触发。

  • mouseover---鼠标指针位于一个元素外部,然后用户将首次移动到另一个元素边界之内时触发。

  • mouseout---用户将光标从一个元素上方移动到另一个元素时触发。

  • mouseup---在用户释放鼠标按钮时触发。

  注意到:上述所有事件除了mouseenter和mouseleave外都冒泡。

  重要:只有在同一个元素上相继触发mousedown和mouseup事件,才会触发click事件。同样,只有在同一个元素上触发两次click事件,才会触发dbclick事件。

  dbclick事件的产生过程如下:

  • mousedown

  • mouseup

  • click

  • mousedown

  • mouseup

  • click

  • dbclick

  上面介绍了有关鼠标的事件,下面介绍一些对于鼠标光标的位置:客户区坐标位置、页面坐标位置、屏幕坐标位置

一、客户区坐标位置

  通过客户区坐标可以知道鼠标是在视口中什么位置发生的。

  clientX和clientY分别表示鼠标点击的位置。以body的左上角为原点,向右为X的正方向,向下为Y的正方向。这两个都是event的属性。举例如下:

    <button id="clickMe">点我</button>
    <script>
        var button=document.getElementById("clickMe");
        button.onclick=function(event){
            alert(event.clientY+""+event.clientX);
        };    
     </script>

  当我点击按钮的左上角时,显示为00。效果如下:

JavaScript事件类型怎么使用

二.页面坐标位置

  和客户区坐标位置不同,页面坐标位置表示鼠标光标在页面而非视口中的位置。因此坐标是从页面本身而非视口的左边和顶边计算的。如果前面的话不能很好的理解,接着看这里:在页面没有滚动的情况下,页面坐标位置和客户区坐标位置是相同的。

  页面坐标

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>页面坐标位置</title>
    <style>
        *{
            margin:0;
            padding:0;
        }
        p{
            width: 800px;
            height: 1200px;            
            background: #ccc;
        }    </style>
</head>
<body>
    <p></p>
    <button id="button"> 点击我</button>
    <script>        
    var button=document.getElementById("button");
        button.onclick=function(){
            alert("pageX为"+event.pageX+"pageY为"+event.pageY);
        };    </script>
</body>
</html>

在上面的例子中,我把p的高设置为了1200px;而我的浏览器视口高度为960px;所以一定需要滚动我们才能点击按钮,最终得到的结果是:pageX为13pageY为1210。

然而IE8及更早的浏览器是不支持事件对象上的页面坐标的,即不能通过pageX和pageY来获得页面坐标,这时需要使用客户区坐标和滚动信息来计算了。而滚动信息需要使用document.body(混杂模式)、document.documentElement(标准模式)中的scrollLeft和scrollTop属性。举例如下:

    <button id="button"> 点击我</button>
    <script>        var button=document.getElementById("button");
        button.onclick=function(){            
        var pageX=event.clientX+(document.body.scrollLeft||document.documentElement.scrollLeft);           
         var pageY=event.clientY+(document.body.scrollRight||document.documentElement.scrollRight);
            alert("pageX为"+pageX+"pageY为"+pageY);
        };    
      </script>

此例子在IE浏览器下可得到同样结果。

三.屏幕坐标位置

  与前两者又有所不同,鼠标事件发生时,还有一个光标相对于整个电脑屏幕的位置。通过screenX和screenY属性就可以确定鼠标事件发生时鼠标指针相对于整个屏幕的位置。举例如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>页面坐标位置</title>
    <style>
        *{
            margin:0;
            padding:0;
        }    </style>
</head>
<body>
    <button id="button"> 点击我</button>
    <script>        
    var button=document.getElementById("button");
        button.onclick=function(){
            alert("X为:"+event.screenX+"Y为:"+event.screenY);
        };    
      </script>
</body>
</html>

最终的结果如下:

JavaScript事件类型怎么使用

显然screenX和screenY是相对于屏幕的左方和上方的。

四.修改键

  当点击某个元素时,如果我们同时按下了ctrl键,那么事件对象的ctrlKey属性值将为true,否则为false,对于alt、shift、meta(windows键盘的windows键、苹果机的Cmd键)的事件属性altKey、shiftKey、metaKey同样如此。下面举例如下:

    <button id="button"> 点击我</button>
    <script>        
    var button=document.getElementById("button");
        button.onclick=function(){            
        var array=new Array();            
        if(event.shiftKey){
                array.push("shift");
            }            if(event.ctrlKey){
                array.push("ctrl");
            }            if(event.altKey){
                array.push("alt");
            }            if(event.metaKey){
                array.push("meta");
            }
            alert(array.join(","));
        };    
      </script>

这个例子中,我首先创建了一个array数组,接着如果我按下了那几个键,就会存入相应的名称。这里我同时按下了四个键,结果如下:

JavaScript事件类型怎么使用

即最终将数组中的四个值拼接成了字符串显示出来。

七、鼠标滚轮事件

    <script>
        document.onmousewheel=function(){
            alert(event.wheelDelta);
        };    
     </script>

当我向下滚动滚轮时,效果如下:

JavaScript事件类型怎么使用

第四部分:键盘和文本事件

  该部分主要有下面几种事件:

  • keydown:当用户按下键盘上的任意键时触发。按住不放,会重复触发。

  • keypress:当用户按下键盘上的字符键时触发。按住不放,会重复触发。

  • keyup:当用户释放键盘上的键时触发。

  • textInput:这是唯一的文本事件,用意是将文本显示给用户之前更容易拦截文本。

  这几个事件在用户通过文本框输入文本时才最常用到。

  键盘事件:

    document.addEventListener("keydown",handleKeyDownClick,false);

        function handleKeyDownClick(event) {            
        var e = event||window.event||arguments.callee.caller.arguments[0];            
        if (e&&e.keyCode == 13) {
                alert("keydown");
            }
        }

“JavaScript事件类型怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JavaScript事件类型怎么使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

javascript中的事件有哪些类型

javascript中的事件有哪些类型?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。javascript有:1、UI事件;2、焦点事件;3、鼠标与滚轮事件;4、键盘与文本事
2023-06-15

使用JavaScript怎么实现类型判断

今天就跟大家聊聊有关使用JavaScript怎么实现类型判断,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、判断引用类型和基本类型的类型是不同的,判断基本类型可以用typeof:t
2023-06-15

JavaScript中的数据类型怎么使用

这篇文章主要介绍“JavaScript中的数据类型怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript中的数据类型怎么使用”文章能帮助大家解决问题。一、基本数据类型(原始值类型
2023-06-30

TypeScript条件类型与内置条件类型怎么使用

这篇文章主要讲解了“TypeScript条件类型与内置条件类型怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“TypeScript条件类型与内置条件类型怎么使用”吧!一、TS中条件类型
2023-07-05

JavaScript怎么检测文件的类型

这篇文章主要介绍JavaScript怎么检测文件的类型,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在日常工作中,文件上传是一个很常见的功能。在某些情况下,我们希望能限制文件上传的类型,比如限制只能上传 PNG 格式
2023-06-15

JavaScript中BOM,DOM和事件怎么使用

这篇文章主要介绍“JavaScript中BOM,DOM和事件怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript中BOM,DOM和事件怎么使用”文章能帮助大家解决问题。BOM概
2023-07-02

JavaScript怎么使用鼠标触发事件

JavaScript是一门广泛应用于网页开发的脚本语言,具备丰富的事件响应机制。其中,鼠标触发事件是我们用得最多的一类事件,也是实现许多交互效果的基础。本文将详细介绍JavaScript中鼠标触发事件的用法及相关注意事项。一、常见鼠标触发事件在JavaScript中,常见的鼠标触发事件包括以下几种:1. click:鼠标单击事件,即鼠标按下并释放的动作。2. dbclick:鼠
2023-05-14

如何使用JavaScript 检测文件的类型

这篇文章将为大家详细讲解有关如何使用JavaScript 检测文件的类型,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、如何查看图片的二进制数据要查看图片对应的二进制数据,我们可以借助一些
2023-06-15

javascript引用类型怎么赋值

小编给大家分享一下javascript引用类型怎么赋值,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、说明引用类型的赋值实际上是对象保存在栈区地址指针上的授权值,因此两个变量指向同一个对象,任何操作都会相互影响。从一个变
2023-06-15

javascript onerror事件使用教程

onerror事件处理函数可在JavaScript错误出现时触发,提供处理错误并防止脚本停止执行的机会。该函数可通过window.onerror添加到window对象,并接受message、source、lineno和error等参数。在处理函数中,可记录错误、显示错误消息、尝试恢复脚本执行或阻止错误传播。通过在生产环境中使用错误报告服务和处理错误,可避免脚本停止执行并损害用户体验。
javascript	onerror事件使用教程
2024-04-02

javascript onresize事件使用教程

JavaScriptonresize事件教程onresize事件在窗口大小改变时触发,可用于调整页面布局、加载特定内容和响应式设计。语法:window.addEventListener("resize",functionName);最佳实践:谨慎使用以避免性能问题。节流事件以限制函数调用频率。考虑移动设备和媒体查询。结合CSS媒体查询简化布局调整。注意:触发频率因浏览器而异。使用getBoundingClientRect()方法获取窗口实际大小。与其他事件(如onload)无顺序关系。
javascript	onresize事件使用教程
2024-04-02

javascript onblur事件使用教程

JavaScriptonblur事件在元素失去焦点时触发,常用于验证表单输入或执行其他操作。事件处理程序可以是匿名函数或命名的函数。使用方法包括:验证表单输入,检查有效性等。隐藏/显示元素,如提示框、搜索结果。触发其他事件,如onchange、onsubmit。存储用户偏好,如在cookie中记录值。跟踪用户交互,记录离开元素前时间等。最佳实践包括:及时反馈,立即向用户提供输入验证。简洁处理程序,提高性能、简化调试。考虑可访问性,提供键盘导航选项。谨慎使用事件冒泡,避免性能问题。测试跨浏览器兼容性。替代事
javascript	onblur事件使用教程
2024-04-02

javascript onsubmit事件使用教程

JavaScriptonsubmit事件用来验证表单数据并决定是否提交表单。通过添加onsubmit属性和定义函数,可以验证数据并返回true或false。onsubmit事件只适用于元素,如果返回false,表单将不会提交。建议使用HTML5表单验证属性或JavaScript库进行表单验证。
javascript	onsubmit事件使用教程
2024-04-02

javascript onstart事件使用教程

JavaScriptonstart事件处理程序在元素开始播放时触发,常用于在媒体或动画开始播放时执行操作。语法为element.onstart=function(){...},其中element为元素引用,function为事件处理程序代码。onstart事件可通过附加到元素的事件处理程序函数使用,也可以使用属性和方法控制播放,例如autoplay、currentTime和play()。最佳实践包括使用事件委托、保持事件处理程序简洁、使用命名空间和测试兼容性。
javascript	onstart事件使用教程
2024-04-02

javascript onbeforeupdate事件使用教程

onbeforeupdate事件在更新HTML元素前触发,允许检查和修改更新内容。事件对象包含新旧值、是否冒泡等信息。通过事件处理程序,开发者可在提交前验证数据或执行自定义行为。最佳实践是避免耗时任务、仅在必要时取消更新。此事件在主流浏览器中得到支持,用于数据验证、错误处理等场景。
javascript	onbeforeupdate事件使用教程
2024-04-02

编程热搜

目录