DOM2和DOM3
样式
对象.style.color""设置或返回样式(行内)
对象.currentStyle["color"]获得样式(IE)
getComputedStyle(对象,随便给)["color"]获得样式
元素大小和偏移量
document.body.clientWidth设置或返回带滚动条的宽度
document.body.clientHight设置或返回带滚动条的高度
document.documentElement.clientWidth设置或返回可视化宽度
document.documentElement.clientHight设置或返回可视化高度
offsetWidth标签的宽度(包括边框和边距)
offsetHight标签的宽度(包括边框和边距)
offsetTop标签上方的偏移量
offsetLeft标签左侧的偏移量
offsetParent返回标签的父类对象
滚动条位置
srcollWidth没有滚动条的元素总宽度
srcollHight没有滚动条的元素总高度
srcollTop滚动条上方的偏移量
srcollLeft滚动条左侧的偏移量
兼容性
document.compatMode判断浏览器是否是混杂模式
BackCompat混杂模式 Css1Compat标准模式
封装方法
function css(){
if(arguments.length==2){//获取
if(getComputedStyle){
return getComputedStyle(arguments[0],false)[arguments[1]]
}
else{
return arguments[0].currentStyle[arguments[1]]
}
}
else if(arguments.length==3){//设置
// arguments[0].style.arguments[1]=arguments[2]
arguments[0].style[arguments[1]]=arguments[2]
}
}
var v=css(div,"width")
console.log(v)
css(div,"width","300px")
事件
事件流
事件冒泡(IE)
从具体元素开始,在逐层寻找上层嵌套标签,依次向上传播
h1->div->body->html->document
事件捕获
从根节点开始执行,逐层向下开始寻找,一直找到带事件的节点为止
document->html->body->div->h1
注意:从DOM2开始,都是执行DOM事件流
DOM事件流
包括三个阶段:事件捕获阶段,处于目标阶段,事件冒泡阶段
执行顺序:首先发生事件捕获,为事件提供机会,然后是事件的目标阶段进行接收事件,最后执行冒泡阶段
document->html->body->div->h1->div->body->html->document
事件下的属性和方法
altKey 返回当事件被触发时,"ALT"是否被按下
button 返回当事件被触发时,哪个鼠标按钮被点击
0左键 1中间键 2右键
clientX 返回当事件被触发时,鼠标指针的水平坐标
clientY 返回当事件被触发时,鼠标指针的垂直坐标
ctrlKey 返回当事件被触发时,"CTRL"键是否被按下
relatedTarget 返回与事件的目标节点相关的节点
screenX 返回当某个事件被触发时,鼠标指针的水平坐标
screenY 返回当某个事件被触发时,鼠标指针的垂直坐标
shiftKey 返回当事件被触发时,"SHIFT"键是否被按下
cancelBubble 如果事件句柄想阻止时间传播到包容对象,必须把该属性设为true
keyCode 对于keypress事件返回Unicode字符码;keydown和keyup事件返回虚拟键盘码
returnValue 把这个属性设置为fasle,可以取消发生事件的源元素的默认动作
bubbles 返回布尔值,指示事件是否是起泡事件类型。
cancelable返回布尔值,指示事件是否可拥可取消的默认动作。
currentTarget 返回其事件监听器触发该事件的元素。
target 返回触发此事件的元素(事件的目标节点)
type 返回当前 Event对象表示的事件的名称。
preventDefault()通知浏览器不要执行与事件关联的默认动作。
stopPropagation()不再派发事件。
*阻止冒泡的方法有哪些
1.if(v==e.target)( console.log(v))//适应所有浏览器
2.e.cancelBubble=true//支持IE低版本
3.e.stopPropagation()//高本版浏览器
*阻止默认行为的方法有哪些
1.return false 适应所有浏览器
2.e.returnValue=false 适应所有浏览器
3.e.preventDefault()支持高本版浏览器