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://www.mzph.cn/bicheng/2335.shtml

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

相关文章

DH 算法;加密算法--基于数学困难问题

目录 DH 算法 加密算法--基于数学困难问题--离散对数问题--可逆困难运算

【Hadoop】-Hive部署[12]

目录 思考 VMware虚拟机部署 规划 步骤1&#xff1a;安装MySQL数据库 步骤2&#xff1a;配置Hadoop 步骤3&#xff1a;下载解压Hive 步骤4&#xff1a;提供MySQL Driver包 步骤5&#xff1a;配置Hive 步骤6&#xff1a;初始化元数据库 步骤7&#xff1a;启动Hive&…

Docker搭建代码托管Gitlab

文章目录 一、简介二、Docker部署三、管理员使用四、用户使用五、用户客户端 一、简介 GitLab是一个基于Git的代码托管和协作平台&#xff0c;类似于GitHub。 它提供了一个完整的工具集&#xff0c;包括代码仓库管理、问题跟踪、CI/CD集成、代码审查等功能。 GitLab的开源版本…

全面了解俄罗斯的VK开户和Yandex投放及内容运营

俄罗斯的VKontakte&#xff08;简称VK&#xff09;和Yandex是两个重要的在线平台&#xff0c;对于希望在俄罗斯市场进行推广的企业来说&#xff0c;了解如何在这些平台上开户和投放广告以及内容运营是非常关键的。 俄罗斯vk广告如何开户&#xff1f; 通过上海上弦进行俄罗斯V…

XiaodiSec day024 Learn Note 小迪安全学习笔记

XiaodiSec day024 Learn Note 小迪安全学习笔记 记录得比较凌乱&#xff0c;不尽详细 day24 sql injection 知识点 脚本代码与数据库前置只是 access 数据库注入 mysql 数据库注入 前置知识 开始 数据库类型不同&#xff0c;流程会不同 access 和 asp 目前使用量较少&a…

mysql索引失效的原因以及解决办法

索引失效的原因 条件表达式中使用了函数条件表达式使用了"不等于"操作符列类型不匹配使用LIKE操作符进行模糊匹配数据量过小 解决办法 避免在索引列上使用函数 使用合适的条件表达式 确保查询条件与索引列类型匹配 使用合适的索引 表结构优化 使用索引提示

画图的神器及必备的调色和选图工具

大学生研究生论文写作及画图的神器 前言常用的工具集合画图工具配色参考画图神器词云 最后下篇 前言 好久没有更博&#xff0c;来更一下吧。最近刚好被问到平常是用什么来画图的&#xff0c;包括会议论文&#xff0c;各种类型的PPT汇报以及项目报告等等里面的图怎么画好。所以…

7.2K star!一个完全免费,可以本地部署的 AI 搜索聚合器。新手可尝试

原文链接&#xff1a;7.2K star&#xff01;一个完全免费&#xff0c;可以本地部署的 AI 搜索聚合器。新手可尝试 ChatGPT 刚上线的时候我用的很少&#xff0c;还是习惯用 Google。主要还是因为不信任&#xff0c;怕它对我胡说八道。 慢慢的&#xff0c;也没有一个明确的时间…

道可云元宇宙每日资讯|上海:推动人工智能创新突破形成新兴产业群

道可云元宇宙每日简报&#xff08;2024年4月22日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 上海&#xff1a;推动人工智能创新突破形成新兴产业群 日前&#xff0c;2024年中共闵行区委网络安全和信息化委员会全体会议召开。会议指出&#xff0c;要持续强化信…

SpringCloud 与 Dubbo 的区别详解

一、Spring Cloud 和 Dubbo 的概述 1.1 SpringCloud 简介 SpringCloud 是一个用于构建云原生应用的框架集合&#xff0c;它为开发者提供了一套完整的工具链&#xff0c;用于快速搭建分布式系统。SpringCloud 基于 SpringBoot 开发&#xff0c;具有如下特点&#xff1a; 提供…

美国签证证件照规格要求(51mm*51mm)

美国签证证件照规格要求&#xff08;51mm*51mm&#xff09;

Docusaurus 3.2 发布,更快的 MDX 开发体验

Docusaurus 是一个静态站点生成器。它构建了一个具有快速客户端导航的单页面应用程序&#xff0c;利用 React 的全部功能使你的网站具有交互性。它提供开箱即用的文档功能&#xff0c;但可用于创建任何类型的网站&#xff08;个人网站、产品、博客、营销登陆页面等&#xff09;…

十几个好用的学习以及AI网站

目录 1.识典古籍 2.华文慕课 3.历代人物 4.北大出版社电子书架 5.WaytoAGI 6.W3Schools 7.AI帮个忙 8.InsCode 9.文心一格 10.即使设计 11.AI绘画 12.无界AI 13.Midjourney中文站 14.其它 1.识典古籍 地址&#xff1a;识典古籍-古籍在线阅读平台 “识典古籍”是…

(三)Servlet教程——Tomcat安装与启动

首先打开浏览器在浏览器地址栏中输入清华大学开源软件镜像站地址&#xff0c;地址如下 https://mirrors.tuna.tsinghua.edu.cn/ 输入地址后回车会出现如下图所示的界面 在该界面找tomcat不是很好找&#xff0c;在搜索框中输入apache然后回车&#xff0c;输入apache后并回车后出…

数控6面钻的优缺点

在木工、家具制造和建筑行业中&#xff0c;数控6面钻已成为一种革命性的工具。这种先进的机器以其高效、精准和多功能性受到了广大制造商的青睐。然而&#xff0c;就像任何技术产品一样&#xff0c;数控6面钻也有其优缺点。在本文中&#xff0c;我们将深入探讨数控6面钻的优缺点…

uboot中bootcmd 和 bootargs 环境变量

文章目录 一、bootcmd环境变量二、bootargs环境变量1.console2.root 三.uboot启动Linux测试方式1&#xff1a;从 EMMC 启动 Linux 系统方式2&#xff1a;从网络启动 Linux 系统 一、bootcmd环境变量 &#x1f4a6;boot 中有两个非常重要的环境变量 bootcmd 和 bootargs。bootc…

Unity的Animator Animation的使用攻略

Animator 动画控制器 Animation 动画 动画片段 .anin 一、创建Animator 创建动画控制器 模型添加Animator组件 把控制器和模型绑定 二、创建动画 进入动画界面 创建动画片段anin 动画窗口分析 制作动画 点击录制&#xff0c; 移动子对象&#xff0c;在视窗 通过移动线来编辑关…

Kibana安装部署(Linux)

Kibana是Elasticsearch的开源可视化工具&#xff0c;与存储在Elasticsearch中的数据进行交互。 1. 下载软件 这里使用的Elasticsearch的版本是7.12.0&#xff0c;所以kibana选择同样的7.12.0版本。 官网下载地址&#xff1a;https://www.elastic.co/cn/downloads/past-releas…

基于SpringBoot的“幼儿园管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“幼儿园管理系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 个人信息界面图 缴费信息管理界…

【C++】637二叉树的层平均值

给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。 #include <iostream> #include <queue> #include <vector>using namespace std;// 二叉树节点的结构 struct TreeNode {int val;TreeN…