【Web API DOM05】环境对象、回调函数(重点)

一:环境对象

阅读完本小节能够判断函数运行在不同环境中,this所指代的对象

1 什么是环境对象

环境对象是函数中的this变量,代表当前函数运行时多处的环境

2 this指向问题

粗略规则:谁调用函数,this就指向谁

<script>function fn() {console.log(this);//window}fn()const tx = document.querySelector('input')tx.addEventListener('input', function (e) {console.log(this);//input})
</script>

3 this的简单应用

 <button>点我</button><script>const tx = document.querySelector('button')tx.addEventListener('click', function (e) {// console.log(this);this.style.backgroundColor = 'red'})</script>
//因为this指向button,所以通过这种方式,点击button按钮后;
//button背景颜色改变

二:回调函数

1 什么是回调函数

将函数A作为参数传递给函数B,称函数A为回调函数

回调函数本质也是函数,只不过将因为其作为参数传递给别的函数;通过先执行某一操作后调用,随后函数才运行,所以称为回调函数

2 回调函数使用场景

function fn(){console.log('我是回调')
}
setInterval(fn,1000)
box.addEventListener('click',function(){console.log('我是回调')
})

三:综合案例(Tab栏切换)

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

1 鼠标经过超链接a实现变色效果

 // 1 鼠标经过实现超链接变色const colorA = document.querySelectorAll('.tab-nav a')for (let i = 0; i < colorA.length; i++) {colorA[i].addEventListener('mouseenter', function () {//遍历a为每个a添加//排他思想document.querySelector('.tab-nav .active').classList.remove('active')this.classList.add('active')})}

重点:

  • 排他思想的应用
  • for循环遍历思想

2 鼠标滑动实现盒子显示隐藏

//2 实现盒子的显示和隐藏
document.querySelector('.tab-content .active').classList.remove('active')
img[i].classList.add('active')

3 最终实现效果

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

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

相关文章

Hbase 面试题(七)

1. 简述详细描述Hbase中Cell的结构&#xff1f; 在HBase中&#xff0c;Cell是存储数据的基本单元&#xff0c;它包含了行、列、版本和值的信息。以下是HBase中Cell结构的详细描述&#xff1a; 行&#xff08;Row Key&#xff09;&#xff1a; 每个Cell属于表中的一行&#xff…

4个免费音频转换器:解放您的音频文件格式转换需求

在日常生活和工作中&#xff0c;我们经常需要处理各种音频文件&#xff0c;但有时候这些文件可能并不是我们需要的特定格式。在这种情况下&#xff0c;一个免费的音频转换器就能派上用场。免费音频转换器是一种非常实用的工具&#xff0c;它可以帮助我们将不同格式的音频文件相…

Swift对比版本号

在 Swift 中比较两个版本号的大小可以使用以下方法: func compareVersions(_ version1: String, _ version2: String) -> ComparisonResult {let v1Components version1.components(separatedBy: ".")let v2Components version2.components(separatedBy: "…

20240603每日通信--------springboot使用netty-socketio集成即时通信WebSocket

简单效果图 群聊&#xff0c;私聊&#xff0c;广播都可以支持。 基础概念&#xff1a; springbootnetty-socketioWebSocket POM文件&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/…

【leetcode10-21】子串、普通数组、矩阵

子串 560.和为K的子数组【没理解】 什么是前缀和&#xff1a;前缀和指一个数组的某下标之前的所有数组元素的和&#xff08;包含其自身&#xff09; 通常&#xff0c;会在前缀和首位放一个0。比如数组[1,2,3。其前缀和是[0,1,3,6] 前缀和通常可以帮助我们快速计算某个区间内的…

一些智能音箱类的软硬件方案

主要参考资料 Rabbit R1: https://www.rabbit.tech/rabbit-r1 mediatek-helio-p35: https://www.mediatek.com/products/smartphones-2/mediatek-helio-p35 NSdisplay: https://www.nsdisplay.com/ai-holobox-mini/ai-holobox-mini.html RK3566: https://www.rock-chips.com/a/…

常用技巧-PPT时你真的做对了吗?

常用技巧-PPT时你真的做对了吗&#xff1f; PPT时通常会通过多种表现手法将信息转化为图表&#xff0c;更好的凸显自己的专业素养。将数据转化为图表是对的&#xff0c;那么你真的用对了图表了吗&#xff1f; 话不多说&#xff0c;直接上干货&#xff1a; 时间线图 时间线是…

Configure Google Chrome Settings with Group Policy

通过 GPO 在域计算机上部署 Google Chrome 下载 MSI 格式的 Google Chrome 安装程序https://chromeenterprise.google/browser/download/#windows-tab解压GoogleChromeEnterpriseBundle64.zip&#xff0c;将GoogleChromeStandaloneEnterprise64.msi 文件复制到域控制器上的 SY…

AI网络爬虫:对网页指定区域批量截图

对网页指定区域批量截图&#xff0c;可以在deepseek的代码助手中输入提示词&#xff1a; 你是一个Python编程专家&#xff0c;一步一步的思考&#xff0c;完成一个对网页指定区域截图的python脚本的任务&#xff0c;具体步骤如下&#xff1a; 设置User-Agent: Mozilla/5.0 (…

基于深度学习的CT影像肺癌检测识别

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 肺癌是全球范围内导致癌症死亡的主要原因之一&#xff0c;早期检测和诊断对于提高患者生存率至关重要。随着深度学习技术的迅猛发展&#xff0c;基于CT影像的肺癌检测识别成为了研究热点。本文介绍…

Python中使用 xlrd + requests下载excel表中的jpg图像或mp4视频

Python中使用 xlrd requests下载excel表中的jpg图像或mp4视频 import requests import xlrd# 读取xls格式的文件,读取全部的数据&#xff0c;以最大的行和最大的列来计算 def read_xls_all(url):url:文件的路径返回值&#xff1a;表格中的数据# 打开指定的工作簿workbook x…

线段交点检测:扫描线算法

NSDT工具推荐&#xff1a; Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 几何对象的相交检测是计算…

Python面试宝典:Python中与调试技巧相关的面试笔试题(1000加面试笔试题助你轻松捕获大厂Offer)

Python面试宝典:1000加python面试题助你轻松捕获大厂Offer【第二部分:Python高级特性:第二十章:测试和调试:第二节:调试技巧】 第二十章:测试和调试第二节:调试技巧1. 使用print()函数2. 使用断言assert3. 使用logging模块4. 使用pdb(Python Debugger)5. 使用IDE内置…

LeetCode //C - 165. Compare Version Numbers

165. Compare Version Numbers Given two version strings, version1 and version2, compare them. A version string consists of revisions separated by dots ‘.’. The value of the revision is its integer conversion ignoring leading zeros. To compare version st…

Spring Boot 开发 -- swagger3.0 集成

前言 随着微服务架构的普及和API数量的增长&#xff0c;API文档的管理和维护变得尤为重要。Swagger作为一款强大的API文档生成工具&#xff0c;能够帮助我们自动生成API文档&#xff0c;并提供在线测试功能&#xff0c;极大地提高了开发效率。本文将介绍如何在Spring Boot项目…

详解布隆过滤器,实现分布式布隆过滤器

什么是布隆过滤器&#xff1f; 原理 布隆过滤器是一种基于位数组&#xff08;bit array&#xff09;和多个哈希函数的数据结构。其核心原理是&#xff1a; 初始化一个长度为m的位数组&#xff0c;所有位初始化为0。使用k个不同的哈希函数将元素映射到位数组中的k个位置。当插…

ChatGPT Edu版本来啦:支持GPT-4o、自定义GPT、数据分析等

5月31日&#xff0c;OpenAI在官网宣布&#xff0c;推出ChatGPT Edu版本。 据悉&#xff0c;这是一个专门为大学校园提供的ChatGTP&#xff0c;支持GPT-4o、网络搜索、自定义GPT、数据分析、代码生成等功能&#xff0c;可以极大提升学生、老师的学习质量和教学效率。 目前&…

【UE5教程】使用蓝图显示鼠标

首先&#xff0c;在您的项目中创建一个新的蓝图类&#xff0c;继承自PlayerController。在蓝图编辑器中&#xff0c;找到Event BeginPlay节点&#xff0c;并从它引出一条线。添加Set Show Mouse Cursor节点&#xff0c;勾选Visible&#xff0c;以确保鼠标在游戏开始时可见。 鼠…

python-web应用程序-Django数据库

python-web应用程序-Django数据库-操作表 原始方法&#xff1a; import pymysql#1.链接mysql conn pymysql.connect(host127.0.0.1,port 2206,user root,passwd root123,charset utf8,db unicom) cursor conn.cursor(cursor pymysql.cursors.DictCursor)#2.发送指令 …

1.4 Unicode简介

现在的Windows操作系统有许多不同语言版本&#xff0c;可以支持所有国家现有的语言文字。这就涉及到不同字符集的编码规则。 本节必须掌握的知识点&#xff1a; 字符集 C语言款字符 宽字符和Windows 1.4.1 字符集 ■ANSI多字节字符集 ●ASCII码 现代计算机发源于美国&…