从零开始学习 JS APL(二):完整指南和实例解析

大家好!这里是关于JS APL第二部分的知识点和笔记以及练习题

目录

大家好!这里是关于JS APL第二部分的知识点和笔记以及练习题

我们分以下几点来说:

1、事件监听(绑定):

目标:能够给 DOM元素添加事件监听l 什么是事件?事件是在编程时系统内发生的动作或者发生的事情比如用户在网页上单击一个按钮l 什么是事件监听?就是让程序检测是否有事件产生,一旦有事件触发,就立即调用一个函数做出响应,也称为 绑定事件或者注册事件比如鼠标经过显示下拉菜单,比如点击可以播放轮播图等等

基本语法:

以下是举例:

好的,以下是一个使用 ES6 语法的 JS APL 事件监听的例子:

事件监听三要素:Ø 事件源: 那个dom元素被事件触发了,要获取dom元素Ø 事件类型: 用什么方式触发,比如鼠标单击 click、鼠标经过 mouseover 等Ø 事件调用的函数: 要做什么事 

解释:

第一行代码使用 const 声明常量 button,并赋值为创建的名为 button 的 Form。在 ES6 中,使用 const 来定义常量,其值不能被修改。

第三行代码使用 addEventListener 方法来绑定 button 的 click 事件。addEventListener 是 ES6 中新增的 API,使用起来比 APL 内置的 on-click 函数更加直观。

箭头函数的语法是 ES6 中另一个常用的特性,它把函数定义简化成了一行代码。这里使用箭头函数来定义事件处理程序,当按钮被点击时,就会执行箭头函数中的代码。

{...} 中的代码就是在按钮被点击时要执行的代码,这里使用了⎕WE函数来弹出一个弹窗,显示 Hello World!。

总的来说,这个例子演示了如何使用 ES6 语法来监听(绑定)元素的事件,并在事件触发时执行一些代码。

案例:

需求:点击关闭之后,顶部关闭分析:①:点击的是关闭按钮②:关闭的是父盒子核心:利用样式的显示和隐藏完成, display:none 隐藏元素 display:block 显示元素

2、事件类型

关于第一个鼠标触发事件(案例)也轮播图升级版:

需求:当点击左右的按钮,可以切换轮播图分析:①:右侧按钮点击,变量++,如果大于等于8,则复原0②:左侧按钮点击,变量--,如果小于0,则复原最后一张③:鼠标经过暂停定时器④:鼠标离开开启定时器

(根据你有几张图定义几个)

关于第二个触发光标获取事件(案例):

需求:当表单得到焦点,显示下拉菜单,失去焦点隐藏下来菜单分析:①:开始下拉菜单要进行隐藏②:表单获得焦点 focus,则显示下拉菜单,并且文本框变色(添加类)③:表单失去焦点,反向操作

(以上练习题好好练习!!!如有需要素材请联系我!!)

3、事件对象

  1)事件对象是什么     Ø 也是个对象,这个对象里有事件触发时的相关信息     Ø 例如:鼠标点击事件中,事件对象就存了鼠标点在哪个位置等信息   2)使用场景     Ø 可以判断用户按下哪个键,比如按下回车键可以发布新闻     Ø 可以判断鼠标点击了哪个元素,从而做相应的操作

    语法:如何获取     Ø 在事件绑定的回调函数的第一个参数就是事件对象     Ø 一般命名为event、ev、e​编辑

3.2 获取事件对象目标:能够使用常见事件对象属性l 部分常用属性        Ø type                p 获取当前的事件类型Ø clientX/clientY                p 获取光标相对于浏览器可见窗口左上角的位置Ø offsetX/offsetY        p 获取光标相对于当前DOM元素左上角的位置Ø key        p 用户按下的键盘键的值        p 现在不提倡使用keyCode

4、环境对象

目标:能够分析判断函数运行在不同环境中 this 所指代的对象环境对象:指的是函数内部特殊的变量 this ,它代表着当前函数运行时所处的环境作用:弄清楚this的指向,可以让我们代码更简洁Ø 函数的调用方式不同,this 指代的对象也不同Ø 【谁调用, this 就是谁】 是判断 this 指向的粗略规则Ø 直接调用函数,其实相当于是 window.函数,所以 this 指代 window

5、回调函数

JS 回调函数是指一种特殊的函数类型,它的作用是将函数作为另一个函数的参数传递,并在另一个函数执行完成后执行回调函数。回调函数通常用于异步编程中,用于处理异步操作的结果。

以下是一个关于 JS 回调函数的例子:

解释:

在函数 add 中,接受两个数字 x 和 y,并将它们相加得到结果。然后,执行回调函数 callback 并将结果作为参数传递给它。

在函数 printResult 中,接受一个参数 result 并将其打印到控制台。这个函数将作为回调函数传递给函数 add。

最后,在调用 add 函数时,将数字 2 和 3 作为参数传递给它,并将函数 printResult 作为回调函数传递给它。当函数 add 执行完成后,将调用回调函数 printResult 并将结果作为参数传递给它,这里是 5。

如果将函数 A 做为参数传递给函数 B 时,我们称函数 A 为回调函数简单理解: 当一个函数当做参数来传递给另外一个函数的时候,这个函数就是回调函数

​编辑

​编辑

6、综合案例

综合案例

需求:鼠标经过不同的选项卡,底部可以显示 不同的内容 

分析:①:主要核心是类的切换, 设定一个当前类,可以让当前元素高亮②:鼠标经过当前选项卡,先移除其余元素身上的当前类,而只给当前元素添加类,③:注意,当前类只能有一个 


我们分以下几点来说:

1、事件监听(绑定):

目标:能够给 DOM元素添加事件监听
l 什么是事件?
事件是在编程时系统内发生的动作或者发生的事情
比如用户在网页上单击一个按钮
l 什么是事件监听?
就是让程序检测是否有事件产生,一旦有事件触发,就立即调用一个函数做出响应,也称为 绑定事件或者注册事

比如鼠标经过显示下拉菜单,比如点击可以播放轮播图等等

基本语法:

以下是举例:

好的,以下是一个使用 ES6 语法的 JS APL 事件监听的例子:

const button = 'button'⎕WC'Form'; // 使用 const 声明常量 button,并赋值为创建的名为 button 的 Formbutton.addEventListener('click', () => { // 使用 addEventListener 方法来绑定 button 的 click 事件,并使用箭头函数定义事件处理程序'Hello World!'⎕WE'Info'; // 点击 button 后执行的代码
});

事件监听三要素:
Ø 事件源: 那个dom元素被事件触发了,要获取dom元素
Ø 事件类型: 用什么方式触发,比如鼠标单击 click、鼠标经过 mouseover 等
Ø 事件调用的函数: 要做什么事
 

解释:

第一行代码使用 const 声明常量 button,并赋值为创建的名为 button 的 Form。在 ES6 中,使用 const 来定义常量,其值不能被修改。

第三行代码使用 addEventListener 方法来绑定 button 的 click 事件。addEventListener 是 ES6 中新增的 API,使用起来比 APL 内置的 on-click 函数更加直观。

箭头函数的语法是 ES6 中另一个常用的特性,它把函数定义简化成了一行代码。这里使用箭头函数来定义事件处理程序,当按钮被点击时,就会执行箭头函数中的代码。

{...} 中的代码就是在按钮被点击时要执行的代码,这里使用了⎕WE函数来弹出一个弹窗,显示 Hello World!。

总的来说,这个例子演示了如何使用 ES6 语法来监听(绑定)元素的事件,并在事件触发时执行一些代码。

可以自己去练习以下

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><button>点击</button><script>const button = document.querySelector("button");function a() {alert("123123123123");}button.addEventListener("mouseover", a);</script></body>
</html>

案例:

需求:点击关闭之后,顶部关闭
分析:
①:点击的是关闭按钮
②:关闭的是父盒子
核心:利用样式的显示和隐藏完成, display:none 隐藏元素 display:block 显示元素


2、事件类型

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>div {width: 200px;height: 200px;background-color: pink;}</style></head><body><div></div><script>const div = document.querySelector("div");div.addEventListener("mouseenter", function () {console.log("轻轻我走了!");});div.addEventListener("mouseleave", function () {console.log("正如我轻轻的来!");});</script></body>
</html>
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>* {margin: 0;padding: 0;box-sizing: border-box;}ul {list-style: none;}.mi {position: relative;width: 223px;margin: 100px auto;}.mi input {width: 223px;height: 48px;padding: 0 10px;font-size: 14px;line-height: 48px;border: 1px solid #e0e0e0;outline: none;}.mi .search {border: 1px solid #ff6700;}.result-list {display: none;position: absolute;left: 0;top: 48px;width: 223px;border: 1px solid #ff6700;border-top: 0;background: #fff;}.result-list a {display: block;padding: 6px 15px;font-size: 12px;color: #424242;text-decoration: none;}.result-list a:hover {background-color: #eee;/* border: 1px solid #000; */display: flex;}</style></head><body><div class="mi"><input type="search" placeholder="小米笔记本" /><ul class="result-list"><li><a href="#">全部商品</a></li><li><a href="#">小米11</a></li><li><a href="#">小米10S</a></li><li><a href="#">小米笔记本</a></li><li><a href="#">小米手机</a></li><li><a href="#">黑鲨4</a></li><li><a href="#">空调</a></li></ul></div><script>const iput = document.querySelector("input");const ul = document.querySelector("result-list");iput.addEventListener("focus", function () {ul.style.display = "block";iput.classList.add(search);});iput.addEventListener("blur", function () {iput.style.border = "0px solid red";});</script></body>
</html>

 

 

关于第一个鼠标触发事件(案例)也轮播图升级版:

需求:当点击左右的按钮,可以切换轮播图
分析:
①:右侧按钮点击,变量++,如果大于等于8,则复原0
②:左侧按钮点击,变量--,如果小于0,则复原最后一张
③:鼠标经过暂停定时器
④:鼠标离开开启定时器

(根据你有几张图定义几个)

关于第二个触发光标获取事件(案例):

需求:当表单得到焦点,显示下拉菜单,失去焦点隐藏下来菜单
分析:
①:开始下拉菜单要进行隐藏
②:表单获得焦点 focus,则显示下拉菜单,并且文本框变色(添加类)
③:表单失去焦点,反向操作

(以上练习题好好练习!!!如有需要素材请联系我!!)


3、事件对象

  1)事件对象是什么
     Ø 也是个对象,这个对象里有事件触发时的相关信息
     Ø 例如:鼠标点击事件中,事件对象就存了鼠标点在哪个位置等信息
   2)使用场景
     Ø 可以判断用户按下哪个键,比如按下回车键可以发布新闻
     Ø 可以判断鼠标点击了哪个元素,从而做相应的操作

    语法:如何获取
     Ø 在事件绑定的回调函数的第一个参数就是事件对象
     Ø 一般命名为event、ev、e

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style></style></head><body><input type="text" /><script>const input = document.querySelector("input");input.addEventListener("keyup", function (e) {});</script></body>
</html>

3.2 获取事件对象
目标:能够使用常见事件对象属性
l 部分常用属性
        Ø type
                p 获取当前的事件类型
Ø clientX/clientY
                p 获取光标相对于浏览器可见窗口左上角的位置
Ø offsetX/offsetY
        p 获取光标相对于当前DOM元素左上角的位置
Ø key
        p 用户按下的键盘键的值
        p 现在不提倡使用keyCode



4、环境对象

目标:能够分析判断函数运行在不同环境中 this 所指代的对象
环境对象:指的是函数内部特殊的变量 this ,它代表着当前函数运行时所处的环境
作用:弄清楚this的指向,可以让我们代码更简洁
Ø 函数的调用方式不同,this 指代的对象也不同
Ø 【谁调用, this 就是谁】 是判断 this 指向的粗略规则
Ø 直接调用函数,其实相当于是 window.函数,所以 this 指代 window

const x = 1;function test() {const y = 2;console.log(x); // 访问全局变量 x,输出 1console.log(window.x); // 访问全局变量 x,输出 1(在浏览器中)console.log(this.x); // 访问全局变量 x,输出 1console.log(y); // 访问局部变量 y,输出 2console.log(window.y); // 输出 undefined(在浏览器中)console.log(this.y); // 输出 undefined
}test();


5、回调函数

JS 回调函数是指一种特殊的函数类型,它的作用是将函数作为另一个函数的参数传递,并在另一个函数执行完成后执行回调函数。回调函数通常用于异步编程中,用于处理异步操作的结果。

以下是一个关于 JS 回调函数的例子:

function add(x, y, callback) {const result = x + y;callback(result);
}function printResult(result) {console.log(`The result is ${result}`);
}add(2, 3, printResult);

解释:

在函数 add 中,接受两个数字 x 和 y,并将它们相加得到结果。然后,执行回调函数 callback 并将结果作为参数传递给它。

在函数 printResult 中,接受一个参数 result 并将其打印到控制台。这个函数将作为回调函数传递给函数 add。

最后,在调用 add 函数时,将数字 2 和 3 作为参数传递给它,并将函数 printResult 作为回调函数传递给它。当函数 add 执行完成后,将调用回调函数 printResult 并将结果作为参数传递给它,这里是 5。

如果将函数 A 做为参数传递给函数 B 时,我们称函数 A 为回调函数
简单理解: 当一个函数当做参数来传递给另外一个函数的时候,这个函数就是回调函数


6、综合案例

综合案例

需求:鼠标经过不同的选项卡,底部可以显示 不同的内容
 

分析:
①:主要核心是类的切换, 设定一个当前类,可以让当前元素高亮
②:鼠标经过当前选项卡,先移除其余元素身上的当前类,而只给当前元素添加类,
③:注意,当前类只能有一个
 

以上就是jaAPL第二部分知识点以及案例(有需要素材的私信我!!!!)

后面我出练习题教程!!! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/197572.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

@PostConstruct使用详解

一、简介 在Spring应用程序中启动时&#xff0c;有时需要在所有Bean都已加载&#xff0c;初始化并准备好之后执行某些自定义代码。这时&#xff0c;Spring提供了一个可用的方式&#xff0c;即使用PostConstruct注解。这个注解用于标记一个方法&#xff0c;这个方法将在Bean初始…

操作系统——进程同步

目录 一、信号量相关函数 1. 创建信号量集 2. 获取信号量集 3. 等待、通知信号量集 4. 控制信号量集 二、简单进程同步 1. 创建信号量集 2. P操作 3. V操作 4. 删除信号量集 5. 测试&#xff1a; 三、生产者与消费者 1. 创建、删除共享内存及信号量集 2. 单一生产…

基于Eclipse+Mysql+Tomcat开发的 教学评价管理系统

基于EclipseMysqlTomcat开发的 教学评价管理系统 项目介绍&#x1f481;&#x1f3fb; 随着教育信息化的发展&#xff0c;教学评价管理系统已经成为了学校、教育机构等场所必不可少的一部分。本项目是基于EclipseMysqlTomcat开发的一套教学评价管理系统&#xff0c;旨在帮助教育…

Android中的动态代理详解

在说动态代理之前&#xff0c;先来简单看下代理模式。代理是最基本的设计模式之一。它能够插入一个用来替代“实际”对象的“代理”对象&#xff0c;来提供额外的或不同的操作。这些操作通常涉及与“实际”对象的通信&#xff0c;因此“代理”对象通常充当着中间人的角色。 代…

2024 年甘肃省职业院校技能大赛中职组 电子与信息类“网络安全”赛项竞赛样题-C

2024 年甘肃省职业院校技能大赛中职组 电子与信息类“网络安全”赛项竞赛样题-C 目录 2024 年甘肃省职业院校技能大赛中职组 电子与信息类“网络安全”赛项竞赛样题-C 需要环境或者解析可以私信 &#xff08;二&#xff09;A 模块基础设施设置/安全加固&#xff08;200 分&…

MacOS M芯片 安装MySQL5.7教程

目录 1. 安装Homebrew1.1 快速安装1.2 检查是否安装成功 2. 通过Homebrew安装MySQL2.1 搜索 MySQL 版本2.2 安装MySQL 5.72.3 位置说明2.4 启动MySQL服务2.5 检查服务状态2.6 设置环境变量2.7 重置密码 3. 测试安装 1. 安装Homebrew 1.1 快速安装 /bin/bash -c "$(curl …

【接口测试】POST请求提交数据的三种方式及Postman实现

1. 什么是POST请求&#xff1f; POST请求是HTPP协议中一种常用的请求方法&#xff0c;它的使用场景是向客户端向服务器提交数据&#xff0c;比如登录、注册、添加等场景。另一种常用的请求方法是GET&#xff0c;它的使用场景是向服务器获取数据。 2. POST请求提交数据的常见编…

uniapp微信小程序解决绘制polygon结束时的问题

目录 一、前言 二、实现思路 三、结束标绘具体代码 1、在地图展示工具栏处判断工具按钮是否展示v-if"item.isshow" 2、data声明的工具按钮中新增结束标绘按钮 3、在按钮的点击事件中新增结束标绘的判断 4、判断绘制的线段个数是否大于等于三条&#xff0c;当满…

Python小案例:打印10以内的素数

解析 1、利用循环控制范围&#xff08;1,100&#xff09; 2、通过循环判断素数 3、利用标记法进行打印素数 代码 #求1——100之间的素数 for i in range(2,101):is_primeNum Truefor j in range(2,i):if i%j 0:# print(f"{i}不是素数")is_primeNum Falseif is_…

LeedCode刷题---双指针问题

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C/C》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 双指针简介 常见的双指针有两种形式&#xff0c;一种是对撞指针&#xff0c;一种是左右指针。 对撞指针:一般用于顺序结构中&…

手机充电器市场分析:预计2028年将达到82亿美元

在5G时代飞速发展的今天&#xff0c;随着科技的进步、应用的发展以及人们对以智能手机、平板电脑、智能穿戴设备为代表的智能终端设备追求越来越高的品质和功能&#xff0c;智能终端设备产品的更新换代的速度越来越快&#xff0c;这也将给全球智能终端充储电产品市场带来更大的…

Mybatis相关API(Sqlsession和sqlsessionFactroy)

代码 private static SqlSessionFactory sqlSessionFactory;static { ​try { // 获得核心配置文件String resource "mybits-config.xml"; // 加载核心配置文件InputStream inputStream Resources.getResourceAsStream(resource…

在OSPF中使用基本ACL过滤路由信息示例

1、ACL的基本原理。 ACL由一系列规则组成&#xff0c;通过将报文与ACL规则进行匹配&#xff0c;设备可以过滤出特定的报文。设备支持软件ACL和硬件ACL两种实现方式。 2、ACL的组成。 ACL名称&#xff1a;通过名称来标识ACL&#xff0c;就像用域名代替IP地址一样&#xff0c;更…

SQL数据库知识点总结归纳

前后顺序可以任意颠倒,不影响库中的数据关系 关系数据库的逻辑性强而物理性弱,因此关系数据库中的各条记录前后顺序可以任意颠倒,不影响库中的数据关系 一名员工可以使用多台计算机(1:m),而一台计算机只能被一名员工使用(1:1),所以员工和计算机两个实体之间是一对多…

【专题】【中值定理-还原大法】

1&#xff09;构造辅助函数 2&#xff09;罗尔定理&#xff1a; 闭区间连续&#xff0c;开区间可导 F&#xff08;a&#xff09;F&#xff08;b&#xff09; 3&#xff09;F‘&#xff08;ξ&#xff09;0&#xff0c;原命题得证 极限保号性&#xff1a;

FacetWP WordPress网站高级筛选过滤插件(含所有扩展)

点击阅读FacetWP WordPress网站高级筛选过滤插件原文 FacetWP WordPress网站高级筛选过滤插件向电子商务网站、资源库、搜索页面等添加分面搜索。FacetWP 的过滤元素&#xff08;称为 facets&#xff09;动态调整以适应用户输入。这有助于防止出现“未找到结果”&#xff0c;从…

hive数据库查看参数/hive查看当前环境配置

文章目录 一、hive查看当前环境配置命令 在一次hive数据库执行命令 set ngmr.exec.modecluster时&#xff0c;想看一下 ngmr.exec.mode参数原先的值是什么&#xff0c;所以写一下本篇博文&#xff0c;讲一下怎么查看hive中的参数。 一、hive查看当前环境配置命令 set &#…

『亚马逊云科技产品测评』活动征文|基于亚马逊EC2云服务器安装Prometheus数据可视化监控

授权声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 Developer Centre, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 亚马逊EC2云服务器&#xff08;Elastic Compute Cloud&#xff09;是亚马…

二、设置三台虚拟机的内存、MAC地址、IP地址

目录 1、配置内存 2、配置MAC地址 2.1 配置node2的MAC地址

【Spark 基础】-- 序列化和反序列化

一、前言 关于序列化和反序列化的定义,在这篇文章中有详细介绍,此处简要说明: 序列化:将对象写入到 IO 流中 反序列化:从 IO 流中恢复对象 我们也可以借助下图来理解序列化和反序列化的过程。 二、Spark 的序列化器 Spark 提供了 2 个序列化库 (Java serializati…