【文档】事件(Event)知识整理

js鼠标特效js鼠标特效js鼠标特效 萤火虫儿似的萤火虫儿似的萤火虫儿似的萤火虫儿似的萤火虫儿似的萤火虫儿似的萤火虫儿似的 立即下载

事件(Event)知识整理,本文由网上资料整理而来,需要的朋友可以参考下


鼠标事件 

鼠标移动到目标元素上的那一刻,首先触发mouseover 
之后如果光标继续在元素上移动,则不断触发mousemove 
如果按下鼠标上的设备(左键,右键,滚轮……),则触发mousedown 
当设备弹起的时候触发mouseup 
目标元素的滚动条发生移动时(滚动滚轮/拖动滚动条。。)触发scroll 
滚动滚轮触发mousewheel,这个要区别于scroll 
鼠标移出元素的那一刻,触发mouseout 

事件注册 

平常我们绑定事件的时候用dom.onxxxx=function(){}的形式 
这种方式是给元素的onxxxx属性赋值,只能绑定有一个处理句柄。 
但很多时候我们需要绑定多个处理句柄到一个事件上,而且还可能要动态的增删某个处理句柄 
下面的事件注册方式就能解决这个需求。 

先介绍一下四个方法 

复制代码代码如下:

//IE以外 
target.addEventListener(type,listener,useCapture) 
target.removeEventListener(type,listener,useCapture); 
target :文档节点、document、window 或 XMLHttpRequest。 
type :字符串,事件名称,不含“on”,比如“click”、“mouseover”、“keydown”等。 
listener :实现了 EventListener 接口或者是 JavaScript 中的函数。 
useCapture :是否使用捕捉,一般用 false。 
//IE 
target.attachEvent(type, listener); 
target.detachEvent(type, listener); 
target :文档节点、document、window 或 XMLHttpRequest。 
type :字符串,事件名称,含“on”,比如“onclick”、“onmouseover”、“onkeydown”等。 
listener :实现了 EventListener 接口或者是 JavaScript 中的函数。 
两者使用的原理:可对执行的优先级不一样,实例讲解如下: 
ele.attachEvent("onclick",method1); 
ele.attachEvent("onclick",method2); 
ele.attachEvent("onclick",method3); 
执行顺序为method3->method2->method1 
ele.addEventListener("click",method1,false); 
ele.addEventListener("click",method2,false); 
ele.addEventListener("click",method3,false); 
执行顺序为method1->method2->method3 
兼容后的方法 
var func = function(){}; 
//例:addEvent(window,"load",func) 
function addEvent(elem, type, fn) { 
if (elem.attachEvent) { 
elem.attachEvent('on' + type, fn); 
return; 
} 
if (elem.addEventListener) { 
elem.addEventListener(type, fn, false); 
} 
} 
//例:removeEvent(window,"load",func) 
function removeEvent(elem, type, fn) { 
if (elem.detachEvent) { 
elem.detachEvent('on' + type, fn); 
return; 
} 
if (elem.removeEventListener) { 
elem.removeEventListener(type, fn, false); 
} 
} 

获取事件对象和事件源(触发事件的元素) 
复制代码代码如下:

function eventHandler(e){ 
//获取事件对象 
e = e || window.event;//IE和Chrome下是window.event FF下是e 
//获取事件源 
var target = e.target || e.srcElement;//IE和Chrome下是srcElement FF下是target 
} 

取消事件默认行为(例如点击一个<a>后不跳转页面而是执行一个函数) 
复制代码代码如下:

function eventHandler(e) { 
e = e || window.event; 
// 防止默认行为 
if (e.preventDefault) { 
e.preventDefault();//IE以外 
} else { 
e.returnValue = false;//IE 
//注意:这个地方是无法用return false代替的 
//return false只能取消元素 
} 
} 

阻止事件冒泡 
复制代码代码如下:

function myParagraphEventHandler(e) { 
e = e || window.event; 
if (e.stopPropagation) { 
e.stopPropagation();//IE以外 
} else { 
e.cancelBubble = true;//IE 
} 
} 


事件委托 

例如,你有一个很多行的大表格,在每个<tr>上绑定点击事件是个非常危险的想法,因为性能是个大问题。流行的做法是使用事件委托。 

事件委托描述的是将事件绑定在容器元素上,然后通过判断点击的target子元素的类型来触发相应的事件。 
事件委托依赖于事件冒泡,如果事件冒泡到table之前被禁用的话,那以下代码就无法工作了。 

复制代码代码如下:

myTable.onclick = function () { 
e = e || window.event; 
var targetNode = e.target || e.srcElement; 
// 测试如果点击的是TR就触发 
if (targetNode.nodeName.toLowerCase() === 'tr') { 
alert('You clicked a table row!'); 
} 
} 


事件(Event)知识整理(二) 

事件流 

DOM同时支持两种事件模型:捕获型事件和冒泡型事件 
并且每当某一事件发生时,都会经过捕获阶段->处理阶段->冒泡阶段(有些浏览器不支持捕获) 

捕获阶段是由上层元素到下层元素的顺序依次。而冒泡阶段则正相反。 

如下图 


当事件触发时body会先得到有事件发生的信息,然后依次往下传递,直到到达最详细的元素。这就是事件捕获阶段。 
还记得事件注册方法ele.addEventListener(type,handler,flag)吧,Flag是一个Boolean值,true表示事件捕捉阶段执行,false表示事件冒泡阶段执行。 
接着就是事件冒泡阶段。从下往上 依次执行事件处理函数(当然前提是当前元素为该事件注册了事件句柄)。 
在这个过程中,可以阻止事件的冒泡,即停止向上的传递。 
阻止冒泡有时是很有必要的,例如 

复制代码代码如下:

<div onclick=funcA()> 
<button onclick=funcB()>Click</button> 
</div> 


本意是如果点击div中按钮以外的位置时执行funcA,点击button时执行funcB。但是实际点击button时就会先后执行funcB,funcA。 
而如果在button的事件句柄中阻止冒泡的话,div就不会执行事件句柄了。


原文链接:http://www.jb51.net/article/31528.htm

纯JS实现的鼠标移动特效 该特效是基于JS实现,从网上提取该特效并整理和简化了很多无用代码,单把这一功能提取出来分享给大家 立即下载

相关推荐

合宙Air780EP速连OneNET:AT+MQTT应用指南

本文详细讲解了合宙Air780EP使用AT指令通过MQTT接入OneNET的过程。

2401_82812461的博客 1390

原生js实现小球在屏幕上自由移动,当遇到屏幕边缘时反弹

小球在桌面上自由移动,要清楚的几个问题 1、小球在桌面移动的最大距离是多少 2、小球移动的步长是多少 3、当小球碰到屏幕边缘时怎么实现反弹 4、 如何实现多个小球 5、怎么实现小球的颜色及大小 关于第一步实现小球在桌面上移动的最大距离的思路 1、首先要获取桌面的宽度与高度,注意获取屏幕的宽度与高度需要封装一下,如下所示 宽:document.documentElement.clientWidth ...

杜伊沫的博客 4523

【Pytorch】DCGAN实战(三):二次元动漫头像生成

文章目录1.实现效果2.环境配置2.1Python2.2Pytorch、CUDA2.3Python IDE3.具体实现3.1数据预处理(data.py)(1)导入包(2)定义数据类3.2模型Generator,Discriminator,权重初始化(model.py)(1)导入包(2)Generator(3)Discriminator(4)权重初始化3.3网络训练(net.py)(1)导入包(2)创建类3.4 主函数(main.py)(1)导入文件(2)定义超参数(3)实例化(4)进行训练4.训练过程4.1

qq_44031210的博客 4918

js事件(Event)知识整理

鼠标事件鼠标移动到目标元素上的那一刻,首先触发mouseover之后如果光标继续在元素上移动,则不断触发mousemove如果按下鼠标上的设备(左键,右键,滚轮……),则触发mousedown当设备弹起的时候触发mouseup目标元素的滚动条发生移动时(滚动滚轮/拖动滚动条。。)触发scroll滚动滚轮触发mousewheel,这个要区别于scroll鼠标移出元素的那一刻,触发mou...

weixin_30824277的博客 160

泛微E9表单建模查询列表勾选后带入流程明细表中

注意:参照下图各项配置,否则会有问题。

泛微二次开发后端知识总结 5311

NeurIPS‘25新研究!PINN+GNN强强联手,模型精度飙升50%!

物理图神经网络研究取得重大进展!UCLA团队提出的PhysGNN架构在NeurIPS'2025上引发关注,该模型成功融合PINN的物理约束优势与GNN的图结构处理能力,解决了工程仿真中的关键瓶颈。研究显示,PhysGNN在城市热网预测中误差降低42%,电网负荷模拟的物理规则违反率下降68%。同步解析的SyncTREE模型则创新性地将RC树物理特性融入GNN,实现毫秒级IC时序分析;HSPGNN模型通过嵌入偏微分方程,显著提升多变量时间序列填补精度。

m0_73122726的博客 1023

JS鼠标事件

📗目录 鼠标事件 鼠标点击 鼠标定位 🍊鼠标事件 dblclick 双击鼠标左键时发生,如果右键也按下则不会发生 mousedown 单击任意一个鼠标按钮时发生 mouseout 鼠标指针位于某个元素上且将要移出元素的边界时发生 mouseover 鼠标指针移出某个元素到另一个元素上时发生 mouseup 松开任意一个鼠标按钮时发生 mousemove 鼠标在某个元素上时持续发生 onmouseover 注册鼠标经过时事件处理函数 onmouseout 注册鼠标移开时事件处理函数

小罗的博客 2780

Redhawk: dynamic ir drop分析(Clock Buffer Clustering)

在dynamic分析中,ir drop问题多出现在三种情况下,缺power mesh,缺power switch,clock cell过于密集。 前两种情况通过选中具体instance查看min res path都比较容易分析出来,而且大部分问题都出现在channel里,这里不多做赘述。 clock cell过于密集这是观察结果,缺少报告支持,这里分享一下分析方法。 首先,选中压降超过signoff标准的instance,(Results->List of Worst Instance DVD中

m0_61544122的博客 5277

JS实现小球移动(点击移动,点击停止)

这么简单的东西,一堆收费的,还特么有很多都是直接cv别人免费的拿来收费,这么缺? <style> div{ width: 100px; height: 100px; border: 1px solid black; border-radius: 50%; text-align: center; line-height: 70px; cursor: pointer;

FanZaiYo的博客 3884

数学之美:欣赏超越数e

文章目录一、e为何物?二、利息与e的关系1、利息问题2、计算利息3、欣赏螺旋线(1)螺旋线概述(2)绘制螺旋线三、e和π 一、e为何物? e是一个无限不循环小数,其值约等于2.718281828…,它是一个超越数,有时也称为欧拉数(Euler’s Number)。 以e为底的对数称为自然对数(Natural Logarithm),数学中使用自然这个词的还有自然数(Natural Number)。 这里的“自然”并不是现代人所习惯的“大自然”,而是有点儿“天然存在,非人为”的意思。 二、利息与e的关系

howard2005的专栏 1718

华为OD机试 - 最快到达医院的方法(Python/JS/C/C++ 2024 E卷 100分)

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 2172

css3动画 小球滚动 ,js控制动画暂停

CSS3 可以创建动画,它可以取代许多网页动画图像、Flash 动画和 JavaScript 实现的效果。 CSS3 @keyframes 规则 要创建 CSS3 动画,你需要了解 @keyframes 规则。 @keyframes 规则是创建动画。 @keyframes 规则内指定一个 CSS 样式和动画将逐步从目前的样式更改为新的样式。 @keyframes myfirst ...

peppa_pig的博客 1125

【系统架构设计师-2026上半年真题】综合知识-参考答案及详解(75题完全回忆版)

【系统架构设计师-2026上半年真题】综合知识-参考答案及详解(75题完全回忆版)

数据知道的博客 3109

event事件知识整理

事件 事件流 事件冒泡 从最具体的元素(文档树中最深的节点)开始触发,然后上传播 事件捕获 从最不具体的节点最先接收到事件,最具体的节点最后收到事件 dom事件流 事件流分为三个阶段:事件捕获=》到达目标事件=》事件冒泡 事件的目标在捕获阶段捕获接收到事件,因为到达目标元素前就结束捕获了 事件处理程序 <style> .dad { background-color: aqua; width: 200px; height: 200

weixin_小白鼠的博客 1387

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Event事件的整理

我们通常会遇到用户注册或者登录后需要做一系列操作,通过事件系统可以做到不侵入原有代码完成登录的操作扩展,降低系统的耦合性的同时,也降低了BUG的可能性。好在我电脑都有运行的PHP版本是8.1多,拿捏这个新出的think。所以,也就是说,我们可以在正常写入或者返回的过程中不变的情况下,首先在业务层代码,比如控制器Index下的login方法下,我是将监听传输的数据进行判断,目前先进行打印。截图之处,文档都有,可根据自身需求改变。安装的步骤我就不说了,再次省略几百字,今天摸索event的这个事件功能,

weixin_40428902的博客 698

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

js事件整理

比如: window.scrollTo(x-coord,y-coord) x-coord 是文档中的横轴坐标。scrollWidth : 是一个只读属性,它返回该元素的像素高度(包含元素宽度,内边距(padding),不包含外边距(margin)、边框(border)),是一个整数,单位是像素 px。scrollHeight :是一个只读属性,它返回该元素的像素高度(包含元素宽度、内边框,不包括边框和外边框),是一个整数,单位是像素 px。首先这两个属性是比较特殊的,只能由浏览器使用的。

zzjwyck的博客 1994

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Unity组件大全之 Event 事件 |(30)Event System:构建交互式UI的核心

在Unity中,创建交互式用户界面(UI)是提升游戏体验的关键。Unity的Event System组件是实现这一目标的基石。本文将详细介绍Unity Event System的核心组件,以及如何利用它们构建响应灵敏的UI。

Unity打怪升级 2261

Unity组件大全之 Event 事件 |(31)Event Trigger:增强UI交互的利器

在Unity游戏开发中,UI的交互性是提升用户体验的关键。Event Trigger组件作为Unity UI系统的核心组件之一,它允许开发者监听和响应各种UI事件,从而实现丰富的用户交互。本文将详细介绍Event Trigger组件的使用方法和一些实用的技巧。

Unity打怪升级 3040

事件冒泡、事件捕获、DOM2事件流和事件委托、DOM事件中Event对象

由网上文章整理成,具体可以参考下面文章: https://www.cnblogs.com/xiaohuochai/p/5859476.html https://segmentfault.com/a/1190000013176643 https://segmentfault.com/a/1190000012729080 https://www.cnblogs.com/christineqing/p/...

yangyang的专栏 3447

jQuery事件方法整理

1.bind(): 向被选中元素绑定事件处理程序,和当事件发生时运行的函数,1.7版本后为 on();live() 添加一个或多个事件处理程序到当前或未来的被选元素,1.9版本后被移除,改用 on() 。 2.blur(): 当元素失去焦点时触发的事件 ,常与focus() 元素获得焦点时触发的事件一起使用; 3.event.currentTarget属性: 当前DOM元素,通常等于this; 4...

MiracleBoyDyl的博客 390

事件绑定、事件传播、事件捕获、事件冒泡、自定义事件,移动端web开发

/通过new Event 创建事件dom.addEventListener(‘test’, function () { //注册事件});//触发事件自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

2401_84092169的博客 989

事件(Event)知识整理

(转载) 鼠标事件 鼠标移动到目标元素上的那一刻,首先触发mouseover之后如果光标继续在元素上移动,则不断触发mousemove如果按下鼠标上的设备(左键,右键,滚轮……),则触发mousedown当设备弹起的时候触发mouseup目标元素的滚动条发生移动时(滚动滚轮/拖动滚动条。。)触发scroll滚动滚轮触发mousewheel,这个要区别于scroll鼠标移出元素的那一刻...

weixin_30267785的博客 129
上一篇: C++箴言:理解 typename 的两个含义
下一篇: 【JS/读书随笔】JavaScript编程精解/Eloquent JavaScript:Chapter 5 函数式编程
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值