1.滚动条距离顶端的距离 (documentElement === html)
var scroll_top = Math.floor(document.documentElement.scrollTop || document.body.scrollTop);
2.滚动条距离左端的距离
var scroll_left = Math.floor(document.documentElement.scrollLeft || document.body.scrollLeft);
3.getElementsByClassName的兼容
function byClassName(node,className){
if(node.getElementsByClassName){
return node.getElementsByClassName(className);
}else{
//获取所有元素
var eles = document.getElementsByTagName('*'); //伪数组
var arr = [];
//判断哪一个元素里面有className
for(var i = 0,len = eles.length;i < len;i ++){
if(eles[i].className === className){
arr.push(eles[i]);
}
}
return arr;
}
}
4.获取元素节点中class属性值的兼容
function getClassName(obj){
return obj.getAttribute('class') ? obj.getAttribute('class') : obj.getAttribute('className');
}
5.获取非行内样式的兼容
function getStyle(obj,attr){
return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj,true)[attr];
}
6.获取事件对象的兼容
var e = evt || window.event;
7.获取鼠标编码值的兼容
function getMouseCode(evt){
var e = evt || window.event;
if(evt){ //标准
return e.button;
}else{
switch(e.button){
case 1 : return 0;
case 4 : return 1;
case 2 : return 2;
}
}
}
8.获取键盘编码值(onkeypress)
var keyCode = event.keyCode || event.charCode || event.which;
9.阻止事件冒泡
event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true;
10.阻止默认行为
event.preventDefault ? event.preventDefault() : event.returnValue = false;
11.添加事件监听器的兼容
function addEventListener(obj,event,fn,bool){
//初始化参数
bool = bool || false;
if(obj.addEventListener){
obj.addEventListener(event,fn,bool);
}else if(obj.attachEvent){
obj.attachEvent('on' + event,fn);
}
}
12.移除事件监听器的兼容
function removeEventListener(obj,event,fn,bool){
bool = bool || false;
if(obj.removeEventListener){
obj.removeEventListener(event,fn,bool);
}else if(obj.detachEvent){
obj.detachEvent('on' + event,fn);
}
}
13.获取事件源的兼容
var target = event.target || event.srcElement;