DOM操作
获取元素
1 | // 直接获取单个元素 |
创建元素
1 | // 创建空元素,添加内容,追加至父元素 |
添加HTML结构效率:innerHTML字符串拼接 < createElement() < innerHTML数组拼接
添加元素
1 | Node.appendChild() // 元素末尾追加子元素 |
复制元素
1 | node.cloneNode(deep? boolean) |
删除元素
1 | // 删除当前节点及子节点 |
元素样式操作
Node.style.* = ""
类名操作
1 | Node.classList // 以list形式返回元素的class属性 |
属性相关
1 | Node.attributes // 获取当前元素的属性数组 |
事件操作
1 | // 绑定事件 |
事件对象
event,只有事件发生了才会存在,表示本次事件。常用event.target
获取触发该事件的元素
BOM操作
浏览器窗口进行的交互,核心是window
页面加载事件
1 | window.onload = function(){} |
window.load是在页面的Dom元素,图片,css,flash加载完毕后才调用
⭐DOMContentLoaded是在DOM加载完毕后调用,不需等待图片等加载完,不会影响用户的体验
窗口大小事件
1 | window.onresize = function(){} |
窗口大小属性
window.innerWidth/Height
:当前窗口宽高
页面滚动事件
1 | scroll绑定滚动事件 |
window.scrollX/Y
:页面滚动的距离
Location(URL相关)
1 | location.href // 返回完整的URL |
location.assign("url")
:跳转页面,记录历史,可回退
loaction.replace()
:替换当前页面,不记录历史
loaction.reload()
:页面重载
history(历史记录相关)
history.back/forward/go()
:以当前页面为节点,在历史记录列表中跳转访问
navigator(获取设备信息)
navigator.userAgent
结合loaction.href实现设备适配
鼠标操作
鼠标事件
1 | click // 鼠标点击 |
鼠标坐标
1 | event.offsetX/Y // 鼠标相对点击元素的位置 |
元素位置属性系列
ele.offsetParent
:指向最近的(指包含层级上的最近)包含该元素的定位元素或者最近的元素
ele.offsetTop/Left
:当前元素相对于offsetParent
节点上/左边界的偏移像素值
ele.scrollTop/Left
:当前元素被滚动卷去的头部/左侧距离
元素尺寸属性系列
ele.clientW/H
:元素可视部分包含padding,不包含边框的宽/高
ele.scrollW/H
:元素本身包含padding,不包含边框的宽/高
ele.clientTop/Left
:元素上/左边框宽度
ele.offsetW/H
:元素可视部分包含padding、border,不包含margin的宽/高
存储对象
Web存储API
属性 | 描述 |
---|---|
window.localStorage | 在浏览器中存储 key/value 对。没有过期时间。 |
window.sessionStorage | 在浏览器中存储 key/value 对。 在关闭窗口或标签页之后将会删除这些数据。 |
存储对象属性
length
:返回存储对象中包含多少条数据
存储对象方法
方法 | 描述 |
---|---|
key(n) | 返回存储对象中第 n 个键的名称 |
getItem(“keyname”) | 返回指定键的值 |
setItem(“keyname”,“value”) | 添加键和值,如果对应的值存在,则更新该键对应的值 |
removeItem(“keyname”) | 移除键值对 |
clear() | 清除存储对象中所有的键 |