JavaScript学习笔记(玖)

85 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情

事件的三要素 事件源(引发后续事件的HTML标签)、事件(js定义好的)、事件驱动程序(DOM) 事件宣告了一个时机,在这个时机出现时,就可以被一些监听代码捕捉到,进而执行一些在别的时机不会被执行的代码

onload 事件 当页面加载完毕的时候,触发 onload 事件

事件的三种添加方式: 通过 onevent 属性调用函数 通过 onevent属性直接写处理代码 通过专门的 API添加事件

js动画 offset、scroll、client window,scroll() 滚动监听 scroll.Width 和 scroll.Height 获取整个元素滚动区域的 宽 高

**获取属性值**     元素节点.getAttribute("属性名");        元素节点.属性名;
**设置节点属性值**    元素节点.属性 = “属性值”;        元素节点.setAttribute("属性名",“新的属性值”);            **删除节点属性**    元素节点.removeAttribute(“属性名");

元素的非原始属性用  get/set/remove Attribute,绑定的属性值会出现在标签上,get 和 set 值必须使用同一种方法。
**innerHTML** 双闭合标签里的内容(包含标签)        **innerText** 双闭合标签里的内容,不包含标签
**nodeType** nodeType == 1 表示元素节点(标签)            nodeType == 2 表示属性节点    nodeType == 3 表示文本节点        nodeType、nodeName、nodeValue

**style属性** style 是一个对象,只能获取 行内样式        元素.style.样式名 / 元素.style[”属性“]            box.style.cssText = ”字符串形式的样式“
**获取元素正在显示的样式** window.getComputedStyle("要获取的样式","伪元素")

DOM 事件模型 捕获(从上往下) 冒泡(从目标元素向上) DOM 事件流 描述DOM事件捕获的具体过程,讲的是事件传递顺序,怎么传递到页面上的 (三个阶段:1、捕获,从window 对象传递到 目标元素 2、目标阶段:事件通过捕获到达目标阶段 3、冒泡:从目标元素 传递到 window 对象)

​ 事件冒泡和事件捕获是每次事件发生都会经历的两个阶段(IE没有事件捕获阶段) 先发生事件捕获:事件从根元素向内直到事件源 后发生事件冒泡:事件从事件源向外直到根元素

DOM0 的写法 element.onclick = function(){ } DOM2 的写法 element.addEventListener(’click', function(){ }, false) (true表示事件在捕获阶段触发,false表示在冒泡阶段触发 默认false) DOM3 的写法 element.addEventListener('keyup',function(){ }, false)

捕获的流程 window->document->html->body->目标元素 获取body 节点:document.body 获取HTML 节点:document.documentElement

冒泡的流程 event.preventDefault(); 阻止默认事件 阻止冒泡:event.stopPropagation();

设置事件优先级:event.stopImmediatePropagation(); 事件委托:event.currentTarget 当前所绑定的事件对象(在时间委托中,指父元素) event.target 当前被点击的元素(在事件委托中,指的是子元素)

  • 综合运用设置定时器及其 clear方法,可以实现 节流 和 防抖

节流: 当一个函数被不断调用时,在一定时间内只执行一次函数体中的主要代码 主要目的:优化代码运行效率。(页面滚动事件和鼠标移动事件一般都会做节流处理)

防抖: 当一个函数被不断调用时不执行函数体中的主要代码,当不再调用这个函数了,才执行函数体中的主要代码