Javascript学习笔记8 事件

PhotoShop脚本之Action Descriptor PhotoShop脚本之Action Descriptor1、PhotoShop脚本简介2、语言3、工具4、语法5、使用Action Descriptor6、示例7、完整代码: 最近研究PS工具,发现部分API不能直接获取到的图层信息,如描边色值、渐变色值等是可以通过PhotoShop的内置对象——Action Descriptor获取的。 1、PhotoShop脚本简介 PhotoShop脚本主要是基于JavaScript语言,以及PhotoShop的语言ExtendScript。这里不做赘述。 想要学习 阅读详情

事件流:从页面中接受事件的顺序

事件冒泡(IE):事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接受,然后逐级向上传播到较不具体的文档节点(文档)

事件捕获:恰恰与事件冒泡相反,不太具体的节点应该更早接受到事件,而最具体的节点应该最后接受到事件(较少人使用)。

DOM2事件规定事件流包括三个阶段:事件捕获阶段、处于目标阶段和事件冒泡阶段

事件处理程序:响应某个事件的函数,以on开头,例如onclick,事件处理程序中的代码在执行过程中,有权访问全局作用域中的任何代码。this对象指向事件的目标元素

<input type="button" value="click me" onclick="alert(this.value)">

DOM 0级事件处理程序

将一个函数赋给一个事件处理程序属性

var btn = document.getElementById("mybtn");
btn.onclick =function(){
    alert("click");
};
btn.onclick = null;    //删除事件

DOM 2级事件处理程序

addEventListener()和removeEventListener()(IE9+,及其他浏览器)
接受3个参数:要处理的事件名、作为事件处理程序的函数、一个布尔值(true表示在事件捕获阶段调用事件处理程序,而false代表在事件冒泡阶段调用事件处理程序)

btn.addEventListener("click",function(){alert("hello");},false);
  • 通过addEventListener()添加的事件只能通过removeEventListener()移除,且必须传入相同的参数,这意味着添加的匿名函数将无法移除

事件对象 Event

在触发DOM上的某个事件时,会产生一个事件对象Event,其包含了所有与事件相关的信息。

var btn = document.getElementById("mybtn");
btn.onclick =function(event){
    alert(evnet.type);   //click
};

event对象的一些属性和方法:

  • target:事件的目标
  • type:事件的类型
  • preventDefault():取消事件的默认行为
  • stopPropagation():取消事件的进一步捕获和冒泡

事件类型

UI事件

  • load事件
    当页面(也可以是图像、script元素、css文件)加载后,就会触发对应对象或元素(window / img / script / link)的load事件
  • unload事件
    文档在完全卸载后触发(此时对象可能已不存在)

  • resize事件
    浏览器窗口大小发生变化时,在window上触发

  • scroll事件
    在窗口页面滚动时触发在window对象


焦点事件

  • blur事件
    在元素失去焦点时触发

  • focus
    在元素获得焦点时触发


鼠标事件

  • click事件
    单击鼠标按钮或回车键
  • dbclick事件
    双击鼠标
  • mousedown事件
    按下任意鼠标按钮,不能通过键盘触发
  • mousemove事件
    当鼠标指针在元素内部移动时重复地触发
  • mouseout事件
    鼠标指针从一个元素移入另一个元素时触发
  • mouseover事件
    鼠标指针首次移入一个元素边界之内时触发
  • mouseup事件
    用户释放鼠标按钮时触发,不能通过键盘触发
  • mousewheel事件
    鼠标滚轮事件

坐标位置
鼠标的坐标位置保存在事件对象的属性中

  • clientX 和 clientY:视口的水平坐标和垂直坐标
  • pageX 和 pageY:相对于页面的水平坐标和垂直坐标,在没有滚动条的情况下,与clientX和clientY相等
  • screenX 和 screenY:相对于屏幕的水平坐标和垂直坐标

修改键
同样保存在事件对象的属性中,当相应的键被按下时为true,否则为false

  • shiftKey:对应shift键
  • ctrlKey:对应Ctrl键
  • altKey:对应Alt键
  • metaKey:对应windows键等

鼠标按钮
针对mousedown和mouseup事件,确定是鼠标哪个键被按下和释放,值保存在event.button属性中

  • 0:左键
  • 1:中间键(滚轮)
  • 2:右键

鼠标滚轮
只针对mousewheel事件,保存在event.wheelDelta属性中,向前滚动是正数,向后滚动时负数


键盘和文本事件

  • keydown事件
    按下任意键触发,按住不放,则重复触发
  • keypress事件
    按下字符键时触发,按住不放,则重复触发
  • keyup事件
    释放按键时触发
  • textinput事件
    用户在可编辑区域中输入字符时,触发此事件

事件的发生顺序:keydown ▷ keypress ▷ keyup

在发生keydown和keyup事件时,event.keyCode属性会包含一个键码,对应某个按键

在发生keypress事件时,event.charCode属性会包含按下键的ASCII值

在发生textinput事件时,event.data属性会包含用户输入的字符值


变动事件
当DOM中的某一部分发生变化时,触发的事件

  • DOMSubtreeModified事件
    当某节点的DOM子树结构发生任何变化时都会触发,这个事件在其他任何事件触发后都会触发
  • DOMNodeRemoved事件
    在节点从其父节点中被移除时触发(removeChild()或replaceChild()),event.target属性指向被删除的节点
  • DOMNodeInserted事件
    在一个节点作为子节点被插入到另一个节点时触发(appendChild(),replaceChild(),insertBefore()),event.target属性指向插入的节点

HTML5事件

  • contextmenu事件
    实现单击右键,出现上下文菜单
div.addEventListener("contextmenu",function(event){
    event.preventDefault();  //阻止默认的上下文菜单
    var menu = document.getElementById("myMenu");  //选取自定义的菜单,比如一个<ul>元素
    menu.style.visibility = "visible";  //使原本隐藏的菜单显现    
});

window.addEventListener("click",function(event){
    document.getElementById("myMenu").style.visibility = "hidden"; //单击其他地方将隐藏菜单
},false);
  • beforeunload事件
    在页面被卸载之前触发,询问用户是否卸载。必须将event.returnValue设置为要显示给用户的字符串,并作为函数值返回。
window.addEventListener("beforeunload",function(event){
    var message = "DO YOU GO?";
    event.returnValue = message;
    return message;
},false);
  • DOMContentLoaded事件
    在形成完整的DOM树之后即触发,不必等待CSS、JS等文件的加载完成,触发在load事件之前。

  • pageshow 和 pagehide事件
    在页面显示时触发,无论该页面是否来自bfcache(前进、后退按钮),这两个事件只能被添加到window对象上

  • haschange事件
    当页面的URL参数列表发生变化时,就会触发。这个事件必须被添加到window对象上

内存和性能

事件委托
利用事件冒泡,只需指定一个事件处理程序,就可以管理某一类型的所有事件。节约了内存

<ul id="mylist">
    <li id="1">1</li>
    <li id="2">2</li>
    <li id="3">3</li>
</ul>

var list = document.getElementById("mylist");   //获取列表

list.addEventListener("click",function(event){  //将事件添加到列表中
    switch(evnet.target.id){   //根据列表项的id来判断
        case "1":
        //do something
        break;
        case "2":
        //do something
        break;
        case "3":
        //do something
        break;
    }
},false);

移除事件处理程序
当移除DOM某元素时,不要忘记将其绑定的事件处理程序移除

someElement.onclick = null;

模拟事件

模拟用户操作触发事件,步骤:创建event对象 ▷ 初始化event对象 ▷ 触发事件

创建event对象

var event = document.createEvent(事件类型)

//事件类型包括:UIEvents、MouseEvents、MutationEvents(变动事件)、HTMLEvents、KeyEvents等

初始化event对象
每个不同类型的事件对象,都具有一个初始化方法,指定触发的事件具体类型,该如何触发事件,是否冒泡等

//鼠标事件对象的初始化
event.initMouseEvent("click",true,true,document.defaultView,0,0,0,0,0,false,false,false,false,0,null);

触发事件

var btn = document.getElementById("mybtn");
btn.dispatchEvent(event);   //触发事件
ScriptListener.8li photoshop 脚本自动生成工具:ScriptListener.8li ,可以将photoshop 操作自动生成 JavaScript 和 VB 语言,使用说明:https://blog.youkuaiyun.com/qq_29454203/article/details/120130385?spm=1001.2014.3001.5501 立即下载

相关推荐

PhotoShop - 记录PS的所有操作为JavaScript代码

NULL 博文链接:https://cherishlc.iteye.com/blog/2042746

photoshop 操作输出 JavaScript 和 VB 脚本功能,实现自动化操作

1、下载ScriptListener.8li 插件 2、将ScriptListener.8li 插件放入photoshop 特定的文件夹中即可 我的photoshop 的安装目录是 D:\Program Files\photoshop,需要将文件放入 “D:\Program Files\photoshop\Adobe Photoshop 2021 (Prerelease)\Plug-ins\ScriptListener.8li” 中 3、然后打开photoshop ,随便操作一下,就生成js 和vb的操作记

qq_29454203的博客 3062

BFD+OSPF+FRR:构建高可用网络的核心铁三角

摘要:VRRP、OSPF、BFD和FRR协同实现网络高可用。VRRP负责网关冗余,OSPF确保路由可达,BFD提供毫秒级故障检测,FRR实现快速路径切换。故障时,BFD立即检测并通知OSPF,FRR在OSPF收敛前切换流量,VRRP完成网关切换(如需)。BFD采用异步模式动态建立,效率最高。该机制确保业务流量无缝切换,提升网络可靠性。

A516988的博客 754

JavaScript学习笔记(8)事件

一、事件概述 1.事件概述 事件冒泡方式(微软): 事件捕捉方式(网景): W3C解决方案: 1.规定事件发生后,先实现事件捕获, 2.但不会对事件进行处理。 3.接着进行到目标阶段,执行当前元素 4.对象的事件处理程序,但它会被看成是 5.冒泡阶段的一部分。 6.最后实现事件的冒泡,逐级对事件进行处理 2.事件的绑定方式 ①行内绑定 <标签名 事件="事件的处理程序"> ②动态绑定 DOM元素对象.事件 = 事件的处理程序; ③事件监听式 DOM对象.detachEvent(typ

weixin_45831889的博客 268

COLMAP生成MVSNet数据集

COLMAP生成MVSNet数据集

qq_43307074的博客 5637

SOPHGO SG2000/SG2002 AI SoC异构架构解析与应用

异构计算架构通过整合不同指令集核心(如RISC-V、Arm和8051)实现性能与功耗的平衡,是现代嵌入式系统和AIoT设备的关键技术。其原理是根据任务特性分配至最适合的计算单元,例如通用计算使用高性能核心,实时任务交由专用核心处理。这种架构在智能视觉、工业检测等场景具有显著优势,能高效处理AI推理、多媒体编解码等任务。SOPHGO SG2000系列SoC采用创新的三核异构设计,集成了0.5-1TOPS的NPU加速器,支持Linux/Android/FreeRTOS多系统并行运行。开发中需注意核心间的IPC通

weixin_30684743的博客 353

JavaScript 学习笔记 - 8 处理事件

事件是用户在访问页面时执行的操作。当浏览器探测到一个事件时,比如用鼠标单击或按键,它可以触发与这个事件相关联的 JavaScript 对象,这些对象称为事件处理程序( event handler)。

泛红尘的博客 793

LibreNMS实战:5分钟搞定Docker部署与中文配置(附常见问题排查)

本文详细介绍了如何使用Docker在5分钟内快速部署LibreNMS,并完成中文界面优化。从环境准备到容器启动,再到中文语言包安装和系统配置调整,提供了完整的实战指南。同时,文章还包含常见问题排查和性能调优建议,帮助用户高效搭建网络监控系统。

e1f2g的博客 1281

JavaWeb学习笔记4 JavaScript8 事件(重点)

js中的事件什么是事件?常用事件:事件的注册onload事件onclick事件onblur事件onchange事件onsubmit 什么是事件? 事件是电脑输入设备与页面进行交互的响应。 常用事件: onload 加载完成事件:页面加载完成之后,常用于做页面js代码初始化操作。 onclick 单击事件:常用于按钮的点击响应操作。 onblur 失去焦点事件:常用于输入框失去焦点后验证其输入内容是否合法 onchange 内容发生改变事件:常用于下拉列表和输入框内容发生改变后操作 onsubmit 表单提

qq_38785034的博客 213

QT控件 参考Qt的PIMPL设计模式实现使用QWidget控件绘制3D饼状图表和3D柱状图表,使用QChartView绘制圆柱体图表

工作中之前遇到了绘制3D饼状图表的需求,通过Qt 实现3维饼状图 一文,成功迅速解决问题,现在闲下来了,之前看QtTreePropertyBrowser库的源代码,就想着学习学习Qt的PIMPL模式,于是就参照PIMPL模式实现通过QWidget控件的paintEvent函数重新绘制3D饼状图表和3D柱状图表统计数据的显示效果, 而使用QChartView绘制圆柱体图表完全是取巧了,为了紧急完成工作采用的方法,实际上使用3D柱状图表显示统计数据更加合理。

... 727

【100%通过率】华为od机试C卷【小朋友来自多少小区】JS 实现

幼儿园组织活动,老师布置了一个任务:每个小朋友去了解与自己同一个小区的小朋友还有几个.我们将这些数量汇总到数组 garden 中。请根据这些小朋友给出的信息,计算班级小朋友至少来自几个小区?

MISAYAONE的博客 2007

8. JavaScript学习笔记——事件

8. 事件 8.1 事件基础 1 /// 事件就是用户或浏览器自身执行的某种动作。诸如 click、load 和 mouseover,都是事件的名字。而响应某个事件的函数就叫做事件处理程序(或事件侦听器)。事件处理程序的名字以"on"开头,因此click 事件的事件处理程序就是 onclick,load 事件的事件处理程序就是 onload。 2 ​ 3 ​ 4 ...

weixin_34355881的博客 119

【Go语言实战】(2) Gin+Vue 电子商城

618来!!不用纠结去哪里剁手了!直接自己安排一个商场不香吗??

面向生活编程 4827

js学习笔记8(事件高级和案例)

- 分析:1.鼠标不断地移动,使用鼠标移动事件:mouseove 2.在页面中移动,给document添加移动事件 3.图片要移动距离,而且不占位置,使用绝对定位 4.核心原理:每次鼠标移动,我们都会获取最新的鼠标坐标,把这个x和y坐标作为图片的top和left值就可以移动图片 -->然后利用事件对象的 target 来找到当前点击的li ,因为点击li,事件会冒泡到ul上,ul有注册事件,就会触发事件监听器 -->//标准写法: stopPropagation();

qq_63130842的博客 691

华为OD机考双机位C卷 - 两个字符串间的最短路径(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 两个字符串间的最短路径(OD上机考试双机位C卷)。提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 835

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Javascript高级编程学习笔记(64)—— 事件(8)键盘与文本事件

Javascript高级编程学习笔记(64)—— 事件(8)键盘与文本事件 键盘与文本事件 用户在使用键盘时会触发键盘事件 “DOM2级事件”最初规定了键盘事件,但是最后在定稿时又删除了相应内容 所以键盘事件被放入了DOM3级事件的规范中 总的来说有三个键盘事件: keydown:当用户按下键盘上的任意键时触发,按住不放会重复触...

巽秋的博客 98

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

JS学习笔记---15 事件高级-8、常用的键盘事件

8、常用的键盘事件 8.1、常用的键盘事件 事件除了使用鼠标触发,还可以使用键盘触发。 键盘事件 触发条件 onkeyup 某个键盘按键被松开时触发 onkeydown 某个键盘按键被按下时触发 onkeypress 某个键盘按键被按下时触发 但是它不识别功能键 比如: ctrl、shift、箭头等 注意: 如果使用 addEventListener 不需要加 on onkeypress 和前面2 个的区别是,它不能识别功能键 三个事件的执行顺序是:keydown -->

weixin_51744858的博客 185

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

node.js学习笔记(8) 事件继承

上一篇的示例中事件都是基于events.EventEmitter的实例,其实我们也建立自己的events类,只要通过集成events.EventEmitter就可以轻松的实现事件监听。 events-inherit.js: var events = require('events'); var util = require('util'); f...

weixin_33826268的博客 114

JavaScript学习笔记

JavaScript学习笔记。

x18395499277的博客 1979

Node.js 与 JavaScript 事件循环的关系

在现代Web开发中,Node.js和JavaScript都是不可或缺的一部分。而理解它们之间的关系,特别是事件循环的概念,对于开发高效、响应迅速的应用程序至关重要。在这个博客中,我们将深入探索事件循环的工作原理,并且结合Node.js的特性,通过示例代码进一步阐明两者之间的联系。

有我更精彩的博客 1637

【JavaScript】JS事件机制学习

常用的事件 通过事件机制,达到与用户的交互,与java的swing交互类似。 主要是结合js的函数使用。 单 / 双击事件 鼠标事件 键盘事件 交点事件 页面加载事件 值改变事件 <html> <head> <title>js的事件机制学习1</title> <meta charset="UTF-8"/> <!--...

寒泉 2万+

JS(JavaScript)事件处理(事件绑定)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。 峨眉山月半轮秋,影入平羌江水流。 夜发清溪向三峡,思君不见下渝州。 ——《峨眉山月歌》 文章目录JS(JavaScript)事件处理(事件绑定)1. 事件简介1.1 事件的定义1.2 事件源1.3 事件对象1.4 事件监听2. 事件的绑定2.1 静态绑定2.2 动态绑定2.3 注意事项2.4 示例代码2.5 页面效果2.6 示例

感谢阅读 1528

JavaScript之JS事件机制

4) 一个事件可以监听触发多个函数的执行,但是不同的函数要使用分号隔开。在HTML上直接使用事件属性进行添加,属性值为所监听执行的函数。当我们的行为动作满足了一定的条件后,会触发某类事务的执行。当事件的触发条件包含相同部分的时候,会产生事件之间的冲突。false:则会阻断当前事件所在的HTML标签的功能。true:则继续执行当前事件所在的HTML标签的功能。(2) js中的事件只有在当前HTML元素上有效。//alert("获取焦点事件");"测试一个事件的多个函数执行"主要是结合js的函数来使用。...

熊凯瑞的博客 1273

JS DOM中的事件

/ 1. 它是JS访问浏览器窗口的一个接口.// 2. 它是一个全局对象. 定义在全局作用域中的变量、函数会变成window对象的属性和方法// 3. 在调用的时候可以省略window, 比如我们前面学习alert(),prompt()都属于window对象的方法// 4. 注意:window对象下有一个特殊属性window.name, window.name的属性值是一个字符串。

m0_63977330的博客 1860
上一篇: 快速排序
下一篇: Javascript学习笔记9 表单
PAT-python-zjw
博客等级 码龄10年 381粉丝 408原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值