事件(四):事件类型

事件类型

web浏览器中可能发生的事件有很多类型:
UI事件:当用户与页面上的元素交互时触发;
焦点事件:当元素获得或失去焦点时触发;
鼠标事件:当用户通过鼠标在页面上执行操作时触发;
滚轮事件:当使用鼠标滚轮(或类似设备)时触发;
文本事件:当在文档中输入文本时触发;
键盘事件:当用户通过键盘在页面上执行操作时触发;
合成事件:当为IME(input method editor,输入法编辑器)输入字符时触发;
变动事件:当底层dom结构发生变化时触发。
变动名称事件:当元素或属性名变动时触发。此类事件已经被废弃,没有任何浏览器实现它们

UI事件

1、load事件

<body onload="alert(‘Loaded‘)">
    <input type=‘button‘ value=‘click me‘ id=‘myBtn‘/>
</body>

图像也可以触发load事件

<img  src="https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png"  onload="alert(‘image Loaded‘)">

2、unload事件 与load事件对应的是unload事件,这是事件在文档被完全卸载后触发。只要用户从一个页面切换到另一个页面,就会发生unload事件。而利用这个事件最多的情况是清除引用,以避免内存泄漏。

<body onunload="alert(‘unloaded!‘)"></body>

或者

EventUtil.addhandler(window,‘unload‘,function(){
    alert(‘unloaded‘);
})

无论是用哪种方式,都要小心编写onunload事件处理程序中的代码,既然unload是在一切都被卸载之后才触发,那么在页面加载后存在的那些对象,此时就不一定存在了。

3、resize事件 当浏览器窗口被他调整到一个新的高度或宽度时,就会触发resize事件

EventUtil.addHandler(window,‘resize‘,function(){
    alert(‘Resized‘);
})

关于何时触发resize事件,不同的浏览器不同的机制,IE,Safari,Chrome和Opera会在浏览器窗口变化了1px就会触发resize事件,然后随着变化不断重复被触发。FireFox则只会在用户停止调整窗口大小时才会触发resize事件。由于这个差别,应该注意不要在这个事件的处理程序中加入大计算量的代码,因为这些代码有可能被频繁执行,从而导致浏览器反应明显变慢。

4、scroll事件

EventUtil.addHandler(window,‘scroll‘,function(event){
    if(document.compatMode == ‘CSS1Compat‘){
        alert(document.documentElement.scrollTop);
    }else{
        alert(document.body.scrollTop);
    }
})

在标准模式下,除Safari之外的所有浏览器都会通过元素来反映这一变化(Safari仍然基于body跟踪滚动位置),以上代码根据模式不同而用了不同当元素,由于safari之前的版本不支持document.compatMode,因此旧版本的浏览器就会满足第二个条件。
与resize类似,scroll事件也会在文档滚动期间重复被触发,所以有必要尽量保持事件处理程序的代码简单

时间: 2024-10-22 19:33:40

事件(四):事件类型的相关文章

微信小程序之触控事件(四)

>>>什么是事件 事件是视图层到逻辑层的通讯方式. 事件可以将用户的行为反馈到逻辑层进行处理. 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数. 事件对象可以携带额外信息,如id, dataset, touches. >>>事件分类 touchstart 手指触摸 touchmove 手指触摸后移动 touchcancel 手指触摸动作被打断,如弹窗和来电提醒 touchend 手指触摸动作结束 tap 手指触摸后离开 longtap 手指触摸

Android触摸事件(四)-CropView裁剪工具的使用

目录 目录 概述 处理流程 裁剪方式 裁剪原理 裁剪流程 图片加载 图片绘制 获取屏幕的大小 计算图片绘制区域 绘制图片 计算裁剪框 绘制裁剪框 裁剪操作 计算实际裁剪区域 裁剪并保存图片 关于移动的限制 关于缩放的限制 使用方式 源码 裁剪类源码 裁剪View源码 接口源码 GitHub地址 概述 处理流程 裁剪方式 图片的裁剪方式有很多种,最常见的有两种吧. 但不管是哪什么类型的裁剪方式,至少需要处理的有以下两个点: 图片显示 裁剪框显示 裁剪方式的不同在于以上两部分的处理方式不同而不同.

C#编程之委托与事件四(二)【转】

C#编程之委托与事件(二) 我在上一篇文章(C#编程之委托与事件(一) )中通过示例结合的方法介绍了委托,在本文中,我同样以代码示例的方式来介绍C#里的事件机制. 二.事件   1.了解概念      事件就是当对象或类状态发生改变时,对象或类发出的信息或通知.发出信息的对象或类称为"事件源",对事件进行处理的方法称为"接收者",通常事件源在发出状态改变信息时,它并不知道由哪个事件接收者来处理.这就需要一种管理机制来协调事件源和接收者,C++中通过函数指针来完成的.

salesforce lightning零基础学习(四) 事件(component events)简单介绍

lightning component基于事件驱动模型来处理用户界面的交互.这种事件驱动模型和js的事件驱动模型也很相似,可以简单的理解成四部分: 1.事件源:产生事件的地方,可以是页面中的输入框,按钮等等: 2.事件: 点击,失去焦点,初始化等等: 3.事件对象:当在事件源触发某个事件的时候,一般会产生一个事件对象,记录着事件的事件源相关信息以及相关的事件信息: 4.事件处理程序(Event Handler):对当前的事件进行程序的处理或者函数. 接下来回到lightning中.在lightn

HTML 5 服务器发送事件、Input 类型、表单元素、表单属性

HTML5 服务器发送事件(server-sent event)允许网页获得来自服务器的更新. Server-Sent 事件 - 单向消息传递 Server-Sent 事件指的是网页自动获取来自服务器的更新. 以前也可能做到这一点,前提是网页不得不询问是否有可用的更新.通过服务器发送事件,更新能够自动到达. 例子:Facebook/Twitter 更新.估价更新.新的博文.赛事结果等. 浏览器支持 所有主流浏览器均支持服务器发送事件,除了 Internet Explorer. 接收 Server

javascript - 工作笔记 (事件四)

在javascript - 工作笔记 (事件绑定二)篇中,我将事件的方法做了简单的包装, JavaScript Code 12345   yx.bind(item, "click", function (e) {         //console.log("Div Click 1 !");         alert("Div Click 1 !");         e.stopPropagation();     }); 但是这样用起来有些

事件, 事件流, 事件委托

事件 : 一. 事件驱动程序的(三要素):          1. 事件 : javascript捕获用户的操作或是页面中的行为(如 : onclick, onmouseover, keydown等等)               2. 事件源 : 触发这个事件的元素(如 : 一个按钮, 一个按键等等) 3. 事件处理程序 : 为该事件被触发时所执行的程序,也称为"事件句柄"和"事件监听器" 二. 绑定事件(有兼容性问题) 1. 在 IE 中,给一个对象的同一事件添

HTML 事件(三) 事件流与事件委托

本篇主要介绍HTML DOM中的事件流和事件委托. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流与事件委托 4. HTML 事件(四) 模拟事件操作[未发布] 目录 1. 事件流 1.1 何为事件流 1.2 事件流的三个阶段 1.3 addEventListener()注册事件流的阶段 1.4 阻止事件流的传播 2. 事件委托 2.1 何为事件委托 2.2 ul.li场景示例 2.3 JQuery的事件委托

HTML 事件(一) 事件的介绍

本篇主要介绍HTML中的事件知识:事件相关术语.DOM事件规范.事件对象. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销[未发布] 3. HTML 事件(三) 事件流[未发布] 4. HTML 事件(四) 模拟事件操作[未发布] 目录 1. 事件相关术语:介绍事件相关的术语:如:事件类型.事件名称.事件目标等等. 2. DOM事件规范:介绍W3C目前定义的三种DOM事件规范:0.2.3级. 3. 事件类型:介绍了HTML目前的事件类型:如:U