定时器
间隔定时器 永动机(隔一段时间,函数执行一次,如果你不手动清除,永远不会停止)
setInterval(fn,interval)
毫秒为单位的时间
eg:
setInterval(function(){
//code
},1000);
含义:间隔一秒调用一次函数
返回值:
定时器的 ID 定时器编号
定时器 需要管理 (某个定时器 进行开启,清除,开启…)
clearInterval(定时器的id);
var timer = null;
timer = setInterval(function(){
},1000);
var timer2 = null;
timer2 = setInterval(function(){},1000);
console.log(timer); //1
console.log(timer2); //2
var timer = null;
timer = setInterval(fn,interval);
清除:
clearInterval(timer);
同一个id定时器,如果多次开启,会以队列的形式,运行(会同时出现多个定时器),在清除的时候,只能清除一个,
在开启定时器之前先清空,保证队列中永远只有一个定时器
倒计时定时器 定时炸弹 (有一个倒计时,时间到了,函数执行一次结束)
setTimeout(fn,interval);
如果需要管理的话
清除:
clearTimeout(timer)
DOM节点
js将 文档(hmlt),描述成了一个树状结构,dom树,html上的所有的东西(包含标签、文本、注释…)都在这个dom树,叫节点 节点不同分类
常见的分类:
元素节点
文本节点
属性节点
节点属性:
node.nodeType 返回节点的类型的值
元素节点 1
属性节点 2
文本节点 3(包含空格)
node.nodeName 返回节点名字
元素节点 标签名的大写 *** 记住 下面不要记
注释 #comment
文本 #text
节点之间关系
childNodes:获取当前元素的所有子节点;
请注意子节点只算第一层的,孙子节点不在子节点的范畴内。
children 获取所有的子元素节点 ****一定要记住
parentNode 获取父节点 **** 获取唯一的父元素
nextElementSibling (678不支持) 下一个兄弟元素节点
previousElementSibling (678不支持) 上一个兄弟元素节点
firstElementChild 第一个子元素节点
lastElementChild 最后一个子元素节点
innerHTML和nodeValue 了解
innerHTML是元素节点的属性
nodeValue 文本节点的属性
-
ox.innerHTML = ‘abc’`
-
box.childNodes[0].nodeValue = '<strong>abc</strong>'
-
innerHTML
会将标签解析 -
nodeValue
不会进行解析,会将标签名转译成字符串,直接输出
offset系列
offsetParent
获取距离当前元素最近的已经定位的祖先元素,如果没有默认是body、html 绝对定位定位基点
offsetWidth/offsetHeight
获取元素 占位宽高 宽度/高度+padding+border
offsetLeft/offsetTop
left:当前元素的offsetParent 左边偏移距离 如果元素是绝对定位 就是left值
top:当前元素的offsetParent 顶部偏移距离 如果元素是绝对定位 就是top值
获取一个元素 距离 页面 顶部的绝对距离
//元素距离顶部绝对距离
function getTop(el) {
var sum = 0;while(el) {
sum += el.offsetTop;
el = el.offsetParent;}
return sum;
}