js笔记.04

1.事件类型

2.获取事件对象

事件对象是对象里有事件触发时的相关信息

该功能可以判断用户按下了哪个键,以及判定鼠标按下了什么元素

在事件绑定的回调函数的第一个参数就是事件对象

一般命名为event,ev或e

3.部分常用的属性

(1)type,获取当前的事件类型

(2)clientX/Y,获取光标相对于浏览器

(3)offsetX/Y,获取光标相对于当前DOM元素左上角的的位置

(4)key,用户按下的键盘3.键的值(现在不提倡用keycode)

4.".trim()"可以去除两侧的空格

例如:console.log(数据..trim())

5.环境对象

每个函数里面都有this,环境对象,普通函数里this指向的就是window

环境对象指的是函数内部特殊的变量this,它指的是当前函数运行时所处的环境

6.回调函数

如果将函数A作为参数传给函数B时,我们称函数A为回调函数

7.事件流

事件流是指时间完整执行过程中的流动路径

8.事件捕获

事件捕获是指从DOM的根元素开始去执行对应的事件

事件捕获需要写相应的代码才能看到效果

9.事件冒泡

当一个元素的事件被触发时,同样的事件会在该元素的所以祖先元素中触发,这一过程被称为事件冒泡(就是当一个元素触发事件后,会依次向上调用所有父级元素的同名事件)

事件冒泡默认存在

L2事件监听的第三参数是false,或者默认都是冒泡

10.阻止冒泡

因为默认就有冒泡模式的存在,所以容易导致事件影响到父级元素

若想把事件限制在当前元素内,就需要阻止冒泡

想阻止冒泡需要拿到事件对象

此方法可以阻断事件流动传播,不光在冒泡阶段有效,在捕获阶段也同样有效

11.解绑事件

addEventListener方式,必须使用removeEventListener(事件类型,事件处理函数,[捕获或者冒泡阶段]),例如:

#匿名函数无法被解绑

12.鼠标经过事件

mouseover和mouseout会有冒泡效果

mouseenter和mouseleave没有冒泡效果

通常推荐第二种写法

13.事件委托

事件委托可以减少注册次数,提高程序性能

给父元素注册事件,当我们触发子元素的时候,会冒泡到父元素身上,从而触发父元素事件

事件对象.target.tagName 可以获得真正触发元素的事件的元素

14.阻止冒泡

在某些情况下需要阻止默认行为地1发生,如链接的跳转。

15.页面加载事件

等待外部资源加载完毕时触发的事件

事件名:load

监听页面所有资源加载完毕:给window添加load事件

当初始的HTML文档被完全被完全加载或解析完成之后DOMcontentLoaded事件就会被触发,且无需等待样式表,图像等完全加载

事件名:DOMcontentLoaded

监听页面DOM加载完毕

给document添加DOMcontentLoaded事件

16.页面滚动事件

滚动条在滚动时持续触发的事件

事件名:scroll

(1)获取位置

获取位置使用的是scrollLeft和scrollTop(属性)

可以获取被卷去的大小

获得的是往左或往上滚出去看不到的距离

这两个值是可读写的

尽量在scroll事件中获取被卷去的距离

17.页面尺寸事件

页面尺寸事件就是在窗口尺寸发生改变时会触发的事件

语法:resize

检测屏幕宽度:

获取宽高:

获取元素的可见部分宽高(不包含边框,margin,滚动条等)

语法:clientWidth和clientHeight

获取元素尺寸于位置——尺寸:

获取元素的自身宽高,包含元素自身设置的宽高,padding,border

语法:offsetWidth和offsetHeight

获取位置:

获取元素距离自己定位父级元素的左,上距离

offsetWidth和offsetHeight只读属性

18.日期对象

日期对象是用来表示时间的的对象

它可以得到当前时间

(1)实体化

在代码中有new这个关键字之后,会创建一个时间变量并获取当前时间

获得指定时间

(2)日期对象方法

因为日期对象返回的数据我们没法直接使用,所以在开发中要转化为常用的格式

(3)时间戳

如果要计算倒计时效果,前面的方法无法直接计算,需要借助时间戳来完成

算法:将来时间戳减去现在时间戳就是剩余毫秒数

剩余毫秒数转化为剩余时间的年月日时分秒就是倒计时时间

比如将来时间戳2000ms减去现在时间戳1000ms=1000ms

1000ms转换就是0时0分1秒

三种获得时间戳的方法

1.使用getTime()方法

2.简写+newDate()(无需实体化)

3.使用Date.now()

无需实体化(但只能得到当前的时间戳,但前面两种可以返回指定时间的时间戳)

19.DOM节点

DOM树里每一个内容都被称之为节点

节点类型:

元素节点(所有的标签,如body,div。html是根节点)

属性节点(所有的属性,如href)

文本节点(所有的文本)

其他

(1)查找节点

父节点查找:

parentNode属性

返回最近一级的父节点,找不到返回为null

兄弟节点查找:

下一个兄弟节点:nextElementSibling属性

上一个兄弟节点:previousElementSibling属性

(2)增加节点

很多情况下,我们可能会在页面中增加一条元素,这时,就需要新增一个节点

创建节点:就是新创建一个网页元素,再添加到网页,一般先创建一个节点,再插入节点

语法:

追加节点:想在页面中看到,还得插入到某个父元素当中

插入到父元素最后一个子元素

插入到某个子元素前面

克隆节点:特殊情况下,我们新增一个节点,会先复制一个1原有的节点,再把被复制的节点放入到指定元素内部

cloneNode会克隆出一个跟源标签一样的元素,括号内传入布尔值

若为true,则代表克隆时会包含后代节点一起克隆

若为false,则代表克隆时不包含后代元素

默认false

删除节点:若一个节点在页面中不需要时,可以删除它

在JS原生DOM操纵中,要删除元素必须要通过父元素删除

语法:

#如果不存在父子关系则删除不成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值