JS之DOM的详细操作(上)

变量声明

var let const 优先声明const只要它不会再进行赋值操作

DOM、DOM树、DOM对象

DOM(Document Object Model——文档对象模型)是用来呈现以及与任意 HTML 或 XML文档交互的API 白话文:DOM是浏览器提供的一套专门用来 操作网页内容 的功能。

DOM树是什么  将 HTML 文档以树状结构直观的表现出来,我们称之为文档树或 DOM 树 描述网页内容关系的名词   作用:文档树直观的体现了标签与标签之间的关系

总结

获取DOM元素

根据CSS选择器来获取DOM元素:

获取第一个元素:

获取多个元素:

返回的结果是一个伪数组

总结:

其它获取DOM元素的方法

DOM修改元素内容

操作元素属性

修改元素常见属性

修改元素样式属性

通过style修改样式

在修改样式遇到background-color时因为有-的存在,会被解析成减号报错,此时用小驼峰命名法写这个backgroundColor照样能够修改样式

通过类名className修改样式

缺点就是新的类名会替换掉原来的类名,所以这个方法不常用

通过 classList 操作类控制CSS

操作表单元素属性

获取表单里面的值用.value 而不是.innerHTML 但<button></button>是用innerHTML获取值的

修改input的type属性  

表单常见属性:disable是禁用的意思,默认是false即不禁用,可以用在验证码已经发送要等60秒才能继续点击,此时就禁用发送验证码的按钮。

checked是选中,默认为true

H5自定义属性

给一些标签自定义一些属性,一定要一data-开头

获取自定义属性:先获得标签对象,如何.dataset获得一个自定义属性Map对象(集合包含了所有自定属性) 再.具体的属性名

set获得的map对象

定时器-间歇函数

就是每隔一定的时间执行一次函数:应用在倒计时

setInterval里面的函数有俩种写法:可以是匿名函数也可以直接写已定义的函数名

关闭定时器

间歇函数返回的是一个数字,即id,每个间歇函数都有自己的id。我们用let来接收这个id,因为关闭了定时器再打开会给id赋值,不适用const。

倒计数效果案例

轮播图定时版

设置小圆点轮播时,用到了排他思想,先把其他li的active去掉,再给当前li加active

事件监听

就是给事件源添加事件 关键要分清三要素

俩种写法 btn.onclick下一个会覆盖上一个

addEventListener()不会覆盖,而且执行完11再执行22

鼠标事件

事件对象

        ​ 事件event对象是指在浏览器中触发事件时,浏览器会自动创建一个event对象,其中存储了本次事件相关的信息,包括事件类型、事件目标、触发元素等等。浏览器创建完event对象之后,会自动将该对象作为参数传递给绑定的事件处理函数,我们可以在事件处理函数中通过访问event对象的属性和方法,来获取事件的相关信息,并做出后续的逻辑处理。

                        

事件对象就是存储了如点击事件等发生时的一些相关信息,它放在了function(e)的第一个参数,不一定写e任意都可以,反之第一个就是事件对象。

使用场景

事件对象的常用属性

环境对象this

this就是当前函数的调用者

回调函数

把函数当做另外一个函数的参数传递,这个函数就叫回调函数 

回调函数本质还是函数,只不过把它当成参数使用

使用匿名函数做为回调函数比较常用

setInterval和addEventListener里面的function就是回调函数

随机点名案例

轮播图完整版案例

让图片自动轮播可以用next.click()即用js自动执行click事件,不要再写轮播的代码

这段写的是图片自动轮播,鼠标经过停止轮播,鼠标离开继续轮播

回车发布评论案例

用到了trim()函数就是去除左右俩边的空格,字符中间的不能去掉

用到了事件对象 只有按下了enter键才能发挥

tab栏切换

a.active 是对class=active的a标签生效,

a:active 是对按下的a标签生效


 

表单全选反选案例

伪类选择器.ck:checked 就是把checked的ck全部选中修改样式

事件流、事件捕获、事件冒泡

事件流:

事件捕获:

事件冒泡:

总结来说就是: 当一个元素接收到事件的时候 会把他接收到的事件传给自己的父级,一直到window。

如果它的父级元素也有某个事件函数,当执行完它的事件函数后,也就会执行它父级的事件函数。

点击son的div盒子执行事件冒泡,alet我是儿子、再alet我是爸爸最后alet我是爷爷

即使儿子没有点击事件的处理函数,他也会向上冒泡

阻止冒泡

解绑事件

on事件解绑方式

addEventListener解绑方式

总结

鼠标经过事件的区别

基本都是用mouseenter和mouseleave

事件委托

应用,之前给每个小li要绑定事件都是用的for循环。现在可以用事件委托,给ul绑定事件,点击li时点击事件会自动冒泡到ul,再执行ul的事件处理函数

总结

e.target获得的是对象 而e.target.tagName获得是对象的名字并且是大写的

事件委托版tab栏切换案例

data-id是属性不要写成类名了

对象调用dataset

阻止元素默认行为

如阻止表单提交、组织链接跳转

页面加载事件(两种方法)

页面资源加载完才执行里面的函数

load和DOMContentLoaded

页面滚动事件

两个属性scrollTop、scrollLeft

获取整个页面的HTML标签

页面滚动到指定坐标(了解)

总结

页面尺寸事件

元素位置属性

clientWidth和clientHeight(不包含border)

offsetWidth、offsetHeight(它是包括border)和offsetTop和offsetLeft

返回元素相对于可视区域的大小及位置(返回的是一个对象)

总结

电梯导航案例(小兔鲜) 

挺重要的

让滑动变得光滑

属性选择器

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值