广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >javascript都有哪些事件类型
  • 372
分享到

javascript都有哪些事件类型

2024-04-02 19:04:59 372人浏览 薄情痞子
摘要

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

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

javascript的事件类型都有:UI事件、焦点事件、鼠标与滚轮事件、键盘与文本事件、复合事件、变动事件、HTML5事件、设备事件、触摸与手势事件等。

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

JavaScript事件类型

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

在上面的例子中,我把div的高设置为了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>
<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都有哪些事件类型

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

五、相关元素

    <button id="button"> 点击我</button>
    <script>        var button=document.getElementById("button");
        button.onmouseup=function(){
            alert(event.button);
        };    </script>

  当我是用左键产生mousedown事件时,弹出窗口为0,中间键为1,右键为2。

六、鼠标滚轮事件

    <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都有哪些事件类型”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: javascript都有哪些事件类型

本文链接: https://www.lsjlt.com/news/73538.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • javascript都有哪些事件类型
    本篇内容介绍了“javascript都有哪些事件类型”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • JavaScript数据类型都有哪些
    这篇文章将为大家详细讲解有关JavaScript数据类型都有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、基本JavaScript数据类型在Java...
    99+
    2022-10-19
  • javascript中的事件有哪些类型
    javascript中的事件有哪些类型?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。javascript有:1、UI事件;2、焦点事件;3、鼠标与滚轮事件;4、键盘与文本事...
    99+
    2023-06-15
  • javascript都有哪些基本数据类型
    本篇内容主要讲解“javascript都有哪些基本数据类型”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript都有哪些基本数据类型”吧! ...
    99+
    2022-10-19
  • java事件类型有哪些
    java中的事件类型有:1.动作事件类;2.组件事件类;3.选择事件类;4.键盘事件类;5.鼠标事件类;java中的事件类型有以下几种动作事件类java中动作事件类是指单击按钮、选择菜单项或在文本框中按下回车时发生的事件,一般使用actio...
    99+
    2022-10-19
  • web挖掘都有哪些类型
    Web挖掘可以分为以下几种类型:1. 网页内容挖掘:从网页中提取有用信息,如文本、图片、视频等。2. 网页结构挖掘:分析网页的结构,...
    99+
    2023-09-09
    web
  • mysql数据类型都有哪些
    本篇文章给大家分享的是有关mysql数据类型都有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 数值类...
    99+
    2022-10-18
  • MySQL字段类型都有哪些
    本篇文章为大家展示了MySQL字段类型都有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.日期和时间数据类型 MySQL数据类型 含义 ...
    99+
    2022-10-18
  • php数组都有哪些类型
    php中数组的类型有普通数组、数值数组、关联数组和多维数组四种类型普通数组php中普通数组是指不能直接使用echo输出的数组$person = array("张三","李四","王五"); echo $person[0];var_dump ...
    99+
    2022-10-07
  • mysql的数据类型都有哪些
    本篇文章给大家分享的是有关mysql的数据类型都有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。mysql的数据类型都有哪些1.text类...
    99+
    2022-10-18
  • 云服务器都有哪些类型
    云服务器是一种虚拟的、可弹性扩展的服务器,通常用于构建私有云、公有云或混合云。以下是常见的云服务器类型: 公共云 (Public Cloud):公共云服务器是为多个用户和应用程序提供支持的服务,通常提供高可用性、高性能和易于管理的基础设...
    99+
    2023-10-26
    都有哪些 类型 服务器
  • 云服务器都有哪些类型型号
    云服务器是一种虚拟的、共享的计算资源,通常由大型云计算服务提供商提供。不同类型的云服务器具有不同的类型,以下是一些常见的类型: Amazon EC2:基于AWS的云服务器,提供高性能、高可用性和高可靠性。 Google GS:基于AWS...
    99+
    2023-10-26
    都有哪些 型号 类型
  • 云服务器都有哪些类型型号的
    云服务器是一种虚拟的、基于云的计算平台,通常由大型数据中心、云计算平台、第三方服务商提供。以下是云服务器的几种类型: 公有云(Public Cloud):由企业和组织将其计算资源和数据存储在云端,通常以API或SDK的形式提供。它使用了...
    99+
    2023-10-26
    都有哪些 型号 类型
  • 云服务器都有哪些类型的
    云服务器是一种虚拟的、可伸缩的计算资源,通常用于在云端存储和管理大型数据集。下面列举几种常见的云服务器类型: 公有云(Public Cloud):公有云是由许多企业、组织或个人共同使用的云平台,旨在为用户提供更广泛的选择、更快的速度、更...
    99+
    2023-10-26
    都有哪些 类型 服务器
  • .NET数据类型具体都有哪些
    这篇文章将为大家详细讲解有关.NET数据类型具体都有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。.NET数据类型之字符串(String)字符串表示文本,即一系列 Unicode 字符。...
    99+
    2023-06-17
  • Redis中的数据类型都有哪些
    Redis中的数据类型都有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。STRINGSTRING是redis中最基本的数据类型,redis中的STRING类...
    99+
    2023-06-19
  • VB.NET基本数据类型都有哪些
    VB.NET基本数据类型都有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。VB.NET基本数据类型的重要方法和属性举例 Dim i As In...
    99+
    2023-06-17
  • ASP.NET Web控件数据网格列类型都有哪些
    本篇内容主要讲解“ASP.NET Web控件数据网格列类型都有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ASP.NET Web控件数据网格列类型都有哪些”吧!ASP.NET Web控件数...
    99+
    2023-06-18
  • javascript中有哪些类型
    这篇“javascript中有哪些类型”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“jav...
    99+
    2022-10-19
  • 亚马逊服务器都有哪些类型
    Amazon EC2(Elastic Compute Cloud):这是亚马逊最早推出的云计算服务之一,可为用户提供高性能的计算资源,如计算引擎、存储、数据库、网络、安全等服务。 AWS(Amazon Web Services):这是亚马...
    99+
    2023-10-27
    亚马逊 都有哪些 类型
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作