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 = 0
        document.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_属性,一步一步往上查找,形成像链条的结构,即,原型链。因此,在我们创建对象、数组、函数时,都自带一些属性&方法,这些属性&方法都在他们的原型上保存着,则他们自创建起,就可直接使用那些属性&方法。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【后端】PyCharm的安装指引与基础配置

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、PyCharm是什么二、PyCharm安装指引安装PyCharm社区版安装PyCharm专业版 三、配置PyCharm&#xff1a;四、总结 前言 随着开发语言及人工智能工具的普及&am…

MS1000TA超声波测量模拟前端

产品简述 MS1000TA 是一款超声波测量模拟前端芯片&#xff0c;广 泛应用于汽车工业和消费类电子。该芯片具有高度 的灵活性&#xff0c;发射脉冲个数、频率、增益及信号阈值 均可配置。同时&#xff0c;接收通道参数也可以灵活配置&#xff0c; 从而适用于不同尺寸容器、不…

Java——继承与组合

和继承类似, 组合也是一种表达类之间关系的方式, 也是能够达到代码重用的效果。组合并没有涉及到特殊的语法 (诸如 extends 这样的关键字), 仅仅是将一个类的实例作为另外一个类的字段。 继承表示对象之间是is-a的关系&#xff0c;比如&#xff1a;狗是动物&#xff0c;猫是动…

ROM修改进阶教程------安卓7_____安卓13去除签名验证操作步骤解析

同类博文: 安卓玩机搞机技巧综合资源-----修改rom 制作rom 解包rom的一些问题解析【二十一】_qcn改区域锁-CSDN博客 安卓系列机型rom修改。如果你删减了系统相关的app。那么严重会导致开机系统卡米 定屏等问题。这类一般都是系统签名验证导致的。而破解签名验证一般都是修改…

计算机java项目|springboot校园一卡通

作者主页&#xff1a;编程指南针 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容&#xff1a;Java项目、Python项目、前端项目、人工智能与大数据、简…

【Linux】文件系统——那就浅聊一下吧

前言 在上一篇文件描述符详解中谈论的都是打开的文件&#xff0c;但是在我们的系统中不仅有打开的文件还有许多未打开的文件&#xff0c;那么这些未打开的文件又该如何理解呢?阅读完本篇文章相信你会得到答案。 如果觉得文章内容对你有所帮助的话&#xff0c;可以给博主一键三…

请编写函数fun,该函数的功能是:移动字符串中的内容,移动的规则如下:把第1到第m个字符,平移到字符串的最后,把第m+l到最后的字符移到字符串的前部。

本文收录于专栏:算法之翼 https://blog.csdn.net/weixin_52908342/category_10943144.html 订阅后本专栏全部文章可见。 本文含有题目的题干、解题思路、解题思路、解题代码、代码解析。本文分别包含C语言、C++、Java、Python四种语言的解法完整代码和详细的解析。 题干 请编…

PLSQL数据库

目录 什么是PLSQL数据库 PL数据库的实现方法 PL数据库的基本语法 1.作用 2.语法 3.赋值输出 4.引用 5.异常处理 6.if 判断 7.loop循环 8.while循环 9.for循环 10.游标 11.参数游标 12.索引 13.分区表 什么是PLSQL数据库 PL/SQL&#xff08;Procedure Language/…

Ansible 指定受控端使用Python的版本

最近在装Ansible&#xff0c;有一台受控端Ubuntu16的服务器&#xff0c;安装了Python2.7.12和Pyhon3.5。当用Ansible连接它时&#xff0c;显示使用的是Python3.5。最后看文档&#xff0c;发现Ansible可以在hosts的文件中指定受控服上运行的Python。 现象 受控端 查看Python版…

STM32 ADC转换器

一、ADC简介 ADC&#xff08;Analog-Digital Converter&#xff0c;模拟-数字转换器&#xff09;&#xff0c;可以将引脚上连续变化的模拟量转换为内存中存储的数字量&#xff0c;建立模拟电路到数字电路的桥梁 模拟量&#xff1a;时间和幅值均连续的信号&#xff0c;例如&…

IDC首份中国数据安全市场图谱发布,天空卫士实力入选多个版块

IDC于近日发布了《Market Glance&#xff1a;中国数据安全市场图谱&#xff0c;2024》&#xff08;Doc# CHC51544524&#xff0c;2024年3月&#xff09;报告&#xff0c;展示了中国数据安全市场的构成和格局&#xff0c;遴选出不同细分市场领域的主要技术服务供应商&#xff0c…

大模型-入门小知识

大模型是什么 大量参数&#xff08;上亿&#xff09;深度学习模型 人工只能包含机器学习&#xff0c;深度学习,深度学习包括大模型 单个神经元的计算模型&#xff1a; 大模型是怎么训练的 之前是算法&#xff08;神经网络&#xff09;----> 训练&#xff08;门槛降低&…

工业设备管理平台

在这个数字化、智能化的新时代&#xff0c;工业设备管理平台正成为推动工业转型升级的重要力量。在众多平台中&#xff0c;HiWoo Cloud以其卓越的性能、稳定的服务和创新的理念&#xff0c;赢得了广大用户的青睐。今天&#xff0c;就让我们一起走进HiWoo Cloud的世界&#xff0…

python与上位机开发day02

1.常见运算符 1.1 赋值运算符 赋值运算符主要用来对变量进行赋值,包括如下这些: 运算符描述赋值加等于-减等于*乘等于/除等于//整除等于%模等于**幂等于 实例如下: a 10 a 5 # 等价于 a a5 a *2 # 等价于 a a*21.2 比较运算符 比较运算符主要用来比较两个数据的大小…

20240423给飞凌的OK3588-C开发板适配OV13855【绿屏】查找问题

20240423给飞凌的OK3588-C开发板适配OV13855【绿屏】查找问题 2024/4/23 19:43 修改2个部分&#xff1a; 1、DTS中CAM1由ISP0处理修改为ISP1处理。【感觉修改为ISP1之后就不出错了&#xff0c;难道ISP0有问题&#xff1f;】 2、ov13855.c修改为 荣品的RK3588开发板提供的SDK An…

1212332

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…

C#开发的全套成熟的LIS系统源码JavaScript+SQLserver 2012区域云LIS系统源码

C#开发的全套成熟的LIS系统源码JavaScriptSQLserver 2012区域云LIS系统源码 医院云LIS系统是一套成熟的实验室信息管理系统&#xff0c;目前已在多家三级级医院应用&#xff0c;并不断更新。云LIS系统是为病人为中心、以业务处理为基础、以提高检验科室管理水平和工作效率为目标…

抽象工厂模式设计实验

【实验内容】 楚锋软件公司欲开发一套界面皮肤库&#xff0c;可以对 Java 桌面软件进行界面美化。为了保护版权&#xff0c;该皮肤库源代码不打算公开&#xff0c;而只向用户提供已打包为 jar 文件的 class 字节码文件。用户在使用时可以通过菜单来选择皮肤&#xff0c;不同的…

骨传导耳机哪个牌子好?5款年度精品骨传导耳机推荐

在骨传导耳机最开始出现的时候&#xff0c;相信很多人都只关心骨传导耳机的外观颜值和特殊的传声方式&#xff0c;但当你真正用过一段时间后&#xff0c;对骨传导耳机有了更加深入的了解后就会关注到骨传导耳机的使用体验、音质表现、蓝牙性能等具体功能&#xff0c;而随着骨传…

【Flutter】多语言方案二:GetX 版

介绍 多语言方案&#xff1a;GetX版&#xff0c;需要手动自定义字符串引用常量&#xff0c;优点不需要自己管理状态。 目录 介绍运行效果一、安装 GetX二、使用1.语言配置 在lib/core下创建一个language文件夹&#xff0c;文件夹下创建一个local.dart文件2.language文件夹下创…