WEB前端-笔记(三)

目录

一、事件

1.1类型

1.2对象

1.3页面加载事件

1.4滚动事件

1.5尺寸事件

1.6捕获&冒泡事件

1.7阻止表单提交

1.8全选案例

1.9事件委托

​编辑

1.10client&offset

1.11换取元素的位置

1.12创建节点

1.13克隆节点

1.14删除节点

1.15setTimeout

1.16setInterval

1.17clearInterval

二、原型链


一、事件

1.1类型

focus 获取焦点事件

ipt.addEventListener("focus", () => {.log("")
})

blue 失去焦点事件

ipt.addEventListener("blur", () => {console.log("")
})

inout 文本输入事件

txt.addEventListener("input", () => {console.log("")
})

change 文本改变事件

txt.addEventListener("change", () => {console.log("")
})

mouseenter 鼠标移入事件

txt.addEventListener("mouseenter", () => {txt.style.backgroundColor = ""
})

mouseleava 鼠标移出事件

txt.addEventListener("mouseleave", () => {txt.style.backgroundColor = ""
})

keydown 键盘按下事件

txt.addEventListener("keydown", () => {console.log("")
})

keyup 键盘弹开事件

txt.addEventListener("keyup", (a) => {console.log("")
})

1.2对象

帮忙记录此次事件触发的所有类型信息,包括触发哪些事件类型、按下哪些键盘按键等等

const txt = document.querySelector("textarea")txt.addEventListener("keydown", (event) => {console.log(event)if (event.code == "Enter") {console.log("")}
})

1.3页面加载事件

window.addEventListener("load", function () {const btn = document.querySelector("button")btn.addEventListener("click", () => {console.log("")})
})

load 等待页面所有资源加载完毕再执行函数

1.4滚动事件

scroll 滚动;该事件一般添加于"window"、"document"、"html"

window.addEventListener("scroll", function () {console.log("")
})

scrollLeft 获取元素向左滚出的高度

window.addEventListener("scroll", function () {console.log(document.documentElement.scrollLeft)
})

scrollTop 获取元素向上滚出的高度

window.addEventListener("scroll", function () {if (document.documentElement.scrollTop >= 1000) {document.querySelector("div").style.display = "block"}document.querySelector("div").addEventListener("click", function () {document.documentElement.scrollTop = 0document.querySelector("div").style.display = "none"})
})

当页面滚出一定距离时,点击“div”回到顶部

1.5尺寸事件

resize

 window.addEventListener("resize", () => {console.log("")
})

1.6捕获&冒泡事件

true 捕获;false 冒泡

const gf = document.querySelector(".grandFather")
const f = document.querySelector(".father")
const s = document.querySelector(".son")
gf.addEventListener("click", function (e) {console.log("我是爷爷触发的事件")e.stopPropagation()
})
f.addEventListener("click", function (e) {console.log("我是爸爸触发的事件")e.stopPropagation()
})
s.addEventListener("click", function (e) {console.log("我是儿子触发的事件")e.stopPropagation()
})

1.7阻止表单提交

const btn = document.querySelector("button")
btn.addEventListener("click", function (e) {e.preventDefault()
})

1.8全选案例

const all_check = document.querySelector("#checkAll")
const cks = document.querySelectorAll(".ck")

功能一:点击“全选”按钮,下列列表被全选

all_check.addEventListener("click", function () {if (all_check.checked == true) {for (let i = 0; i < cks.length; i++) {cks[i].checked = true}
}else {for (let i = 0; i < cks.length; i++) {cks[i].checked = false}}
})

功能二:将下列列表全选,“全选”按钮被选择

for (let i = 0; i < cks.length; i++) {cks[i].addEventListener("click", function () {let num1 = document.querySelectorAll(".ck:checked")if (num1.length == cks.length) {all_check.checked = true}else {all_check.checked = false}})
}

1.9事件委托

利用事件监听里的冒泡

const ul = document.querySelector("ul")
ul.addEventListener("click", function (e) {if (e.target.tagName === "LI") {e.target.style.backgroundColor = "red"}
})

1.10client&offset

clientWidth/clientHeight 获取元素可视区域的宽度/高度,不包括边框、margin、滚动条

const box = document.querySelector("div")
console.log(box.clientWidth)
console.log(box.clientHeight)

offsetWidth/offsetHeight 获取元素自身的宽/高,包括padding、border

console.log(box.offsetWidth)
console.log(box.offsetHeight)

1.11换取元素的位置

获取元素距离自己已有定位的父级元素的左&上距离

const box = document.querySelector("div")
const p = document.querySelector("p")
console.log(p.offsetTop)
console.log(p.offsetLeft)

1.12创建节点

创建节点

const btn = document.querySelector("button")
const ul = document.querySelector("ul")
btn.addEventListener("click", function () {const newLi = document.createElement("li")
})

给新创建的元素追加内容

btn.addEventListener("click", function () {const newLi = document.createElement("li")newLi.innerHTML = ``
})

追加节点至指定位置

btn.addEventListener("click", function () {const newLi = document.createElement("li")newLi.innerHTML = ``ul.insertBefore(newLi, ul.children[0])
})

1.13克隆节点

cloneNode(true) 表示克隆时将后代节点一起克隆,默认情况下为“false”

const li = document.querySelector("ul li")
const newli = li.cloneNode(true)
console.log(newli)

1.14删除节点

必须基于父元素进行删除

const ul = document.querySelector("ul")
ul.removeChild(ul.children[1])

1.15setTimeout

主要用来指定函数某段代码,在一定时间之后执行,返回一个整数,作为定时器的编号,以此后期清除定时器

根据定时器返回的整数清除定时器

let timer2 = setTimeout('console.log("Hello Word")', 3000)
clearTimeout(timer2)

在全局作用域下,this关键字指向window;对象中的this,默认指向对象本身;箭头函数没有this的作用域

1.16setInterval

每隔一定时间,执行一次代码

let timer = setInterval(function (a, b) {console.log("hello word")console.log(a)console.log(b)
}, 1000, 1, 2)
console.log(timer)

1.17clearInterval

用来停止setInterval()方法执行的函数代码

let timer = setInterval(function (a, b) {console.log("hello word")console.log(a)console.log(b)
}, 1000, 1, 2)
console.log(timer)
clearInterval(timer)

二、原型链

当访问某个对象的属性时,会先在这个对象本身属性上查找,如果没有找到,就去它的原型(_proto_)去找,即它的构造函数的prototype查找,如果没有找到,就到原型的原型去找(构造函数的prototype._proto_)。如果直到最顶层的 Object.prototype 还是找不到,是null,则返回undefined。这样一层一层的查找就会形成一个链式结构,这就是原型链。如果对象自身和它的原型,都定义了一个同名属性,那么优先读取对象自身的属性,这叫做“覆盖”。所有引用类型的 _proto_都指向它的构造函数的prototype。即,整个查找过程是顺着_proto_属性,一步一步往上查找,形成像链条的结构,即,原型链。因此,在我们创建对象、数组、函数时,都自带一些属性&方法,这些属性&方法都在他们的原型上保存着,则他们自创建起,就可直接使用那些属性&方法。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

springcloud alibaba 整合seata的TCC

一、seata服务端搭建同上篇。 Seata的AT模式客户端两阶段提交流程源码分析 二、seata客户端的结构 1.示例DEMO工程 下单&#xff0c;扣余额&#xff0c; 减库存。 2. MAVEN配置。 父工程&#xff1a;由于spring-cloud-starter-alibaba-seata依赖的seata-spring-boot-starter…

OpenHarmony实战开发-

简介 SmartPerf-Host是一款深入挖掘数据、细粒度展示数据的性能功耗调优工具&#xff0c;可采集CPU调度、频点、进程线程时间片、堆内存、帧率等数据&#xff0c;采集的数据通过泳道图清晰地呈现给开发者&#xff0c;同时通过GUI以可视化的方式进行分析。该工具当前为开发者提…

C++ 性能分析的实战指南(gperftools工具)[建议收藏]

文章目录 使用gperftools进行 C 性能分析的实战指南一、编译安装 gperftools1. 下载源代码&#xff1a;2. 编译和安装&#xff1a; 二、编写测试程序三、使用 gperftools 代码示例四、查看分析结果五、一份实际代码实例及实操1.代码实例2.操作命令3.结果分析根据上述数据&#…

【Cookie和Session的区别(面试重点)】

Cookie和Session的区别 1. Cookie1.1 认识Cookie1.2 Cookie的引出1.3 Cookie工作原理1.4 Cookie重要结论 2. Session2.1 认识Session2.2 Session的引出2.3 Session的工作原理 3. Cookie和Session的区别 1. Cookie 1.1 认识Cookie Cookie&#xff1a;是小型文本文件&#xff0…

实验七 智能手机互联网程序设计(微信程序方向)实验报告

请编写一个用户登录界面&#xff0c;提示输入账号和密码进行登录&#xff0c;要求在输入后登陆框显示为绿色&#xff1b; 二、实验步骤与结果&#xff08;给出对应的代码或运行结果截图&#xff09; index.wxml <view class"content"> <view class"a…

概率图模型在机器学习中的应用:贝叶斯网络与马尔可夫随机场

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

C++ stl容器list的底层模拟实现

目录 前言&#xff1a; 1.创建节点 2.普通迭代器的封装 3.反向迭代器的封装 为什么要对正向迭代器进行封装&#xff1f; 4.const迭代器 5.构造函数 6.拷贝构造 7.赋值重载 8.insert 9.erase 10.析构 11.头插头删&#xff0c;尾插尾删 12.完整代码简单测试 总结&…

Iterator 迭代器

意图 提供一个方法顺序访问一个聚合对象中的各个元素&#xff0c;且不需要暴漏该对象的内部表示。 结构 Iterator&#xff08;迭代器&#xff09;定义访问和遍历元素的接口。ConcreteIterator&#xff08;具体迭代器&#xff09;实现迭代器接口&#xff1b;对该聚合遍历是跟踪…

爽!极品AI大模型,抓紧收藏!

今天给大家分享一个基于视觉和文本的聊天机器人&#xff0c;使用DeepSeek-VL-7B模型提供文本和图像的自动化生成回复&#xff0c;它允许用户在与机器人交互时提交文本和图像输入。 DeepSeek-VL简介 DeepSeek-VL系列代表了在多模态AI领域的一大突破&#xff0c;提供了两种不同规…

阿赵UE学习笔记——30、HUD简单介绍

阿赵UE学习笔记目录 大家好&#xff0c;我是阿赵。   继续学习虚幻引擎&#xff0c;这次来学习一下HUD的基础使用。 一、 什么是HUD HUD(Head-Up Display)&#xff0c;也就是俗称的抬头显示。很多其他领域里面有用到这个术语&#xff0c;比如开车的朋友可能会接触过&#xf…

Linux驱动开发——(四)内核定时器

一、内核的时间管理 1.1 节拍率 Linux内核中有大量的函数需要时间管理&#xff0c;比如周期性的调度程序、延时程序等等&#xff0c;对于驱动编写者来说最常用的是定时器。 硬件定时器提供时钟源&#xff0c;时钟源的频率可以设置&#xff0c;设置好以后就周期性的产生定时中…

将MySQL数据库查询结果导出为txt文档,并建成实体类

目录 第一章、功能需求和分析1.1&#xff09;具体需求1.2&#xff09;分析需求转为小的问题1、如何获得数据库表的字段&#xff1f;2、如何将数据库查询结果导出&#xff1f;3.将获得的数据库查询结果转为驼峰式4.让AI建个实体类 友情提醒: 先看文章目录&#xff0c;大致了解文…

Python Selenium无法打开Chrome浏览器处理自定义浏览器路径

问题 在使用Python Selenium控制Chrome浏览器操作的过程中&#xff0c;由于安装的Chrome浏览器的版本找不到对应版本的驱动chromedriver.exe文件&#xff0c;下载了小几个版本号的驱动软件。发现运行下面的代码是无法正常使用的&#xff1a; from selenium import webdriver …

2024年【北京市安全员-B证】考试题及北京市安全员-B证考试试卷

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 北京市安全员-B证考试题参考答案及北京市安全员-B证考试试题解析是安全生产模拟考试一点通题库老师及北京市安全员-B证操作证已考过的学员汇总&#xff0c;相对有效帮助北京市安全员-B证考试试卷学员顺利通过考试。 1…

第十六届“华中杯”B 题使用行车轨迹估计交通信号灯周期问题

某电子地图服务商希望获取城市路网中所有交通信号灯的红绿周期,以便为司机提供更好的导航服务。由于许多信号灯未接入网络,无法直接从交通管理部门获取所有信号灯的数据,也不可能在所有路口安排人工读取信号灯周期信息。所以,该公司计划使用大量客户的行车轨迹数据估计交通…

RISC-V CVA6 在 Linux 下相关环境下载与安装

RISC-V CVA6 在 Linux 下相关环境下载与安装 所需环境与源码下载 CVA6 源码下载 首先&#xff0c;我们可以直接从 GitHub 一次性拉取所有源码&#xff1a; git clone --recursive https://github.com/openhwgroup/cva6.git如果这里遇到网络问题&#xff0c;拉取失败&#x…

语音聊天app软件、语音房软件开发

最近我们收到了众多客户咨询,他们都对语音聊天app非常感兴趣! 语音聊天app,在线组CP,一起连麦聊天、唱歌、打游戏,年轻人非常喜欢的语音社交软件,可以语音通话、多人语音房聊天、发布动态、会员充值等功能.大家可以在虚拟世界里快乐社交! 里面还有好玩的互动小游戏,帮助客户增…

MLLM | Mini-Gemini: 挖掘多模态视觉语言大模型的潜力

香港中文、SmartMore 论文标题&#xff1a;Mini-Gemini: Mining the Potential of Multi-modality Vision Language Models Code and models are available at https://github.com/dvlab-research/MiniGemini 一、问题提出 通过更高分辨率的图像增加视觉标记的数量可以丰富…

电磁仿真--基本操作-CST-(2)

目录 1. 回顾基操 2. 操作流程 2.1 创建工程 2.2 修改单位 2.3 创建 Shape 2.4 使用拉伸 Extrude 2.5 修改形状 Modify Locally 2.6 导入材料 2.7 材料解释 2.8 材料分配 2.9 查看已分配的材料 2.10 设置频率、背景和边界 2.11 选择 Edge&#xff0c;设置端口 2.…

npm install 卡在still idealTree buildDeps不动

前言 再使用npm install 安装包依赖时 发现一直卡住 停留在 观察node_cache下的_logs文件 发现一直在拉取包 37 silly idealTree buildDeps 38 silly fetch manifest riophae/vue-treeselect0.4.0尝试解决 尝试设置了taobao镜像源 依然如此 获取已经设置的镜像源 确实是ta…