在前端项目开发中最头疼的无疑就是兼容了,下面我写了一些常见的兼容性写法:
1. 获取非行内样式(兼容问题)
function getStyle(obj, attr) {
//获取非行间样式,obj是对象,attr是值
if (obj.currentStyle) {
//针对ie获取非行间样式
return obj.currentStyle[attr];
} else {
return getComputedStyle(obj, false)[attr]; //针对非ie
}
}
调用getStyle(obj, attr);
2.window.onscroll事件(获取滚动条移动的垂直距离)
function getScrollTop() {
var _top = document.body.scrollTop || document.documentElement.scrollTop;
return _top;
}
//调用getScrollTop();
3.事件对象的兼容
function getEvent(evt) {
var e = evt || event;
return e;
}
//调用getEvent()
4.键盘检测兼容方法
function getKey(e) {
var key = e.keyCode || e.which || e.charCode;
return key;
}
//调用getKey(e);
5.阻止时间冒泡的兼容
function getTimeMp(e) {
var TimeMp = e.stopPropagation
? e.stopPropagation()
: (e.cancelBubble = true);
return TimeMp;
}
//调用getTimeMp(e);
6.阻止浏览器默认兼容写法
function getBrowserDefault(e) {
var BrowserDefault = e.preventDefault
? e.preventDefault()
: (e.returnValue = false); //第一种
return BrowserDefault;
}
//调用getBrowserDefault(e);
7.事件监听的兼容写法:
function addEvent(obj, type, callBack) {
if (obj.addEventListener) {
obj.addEventListener(type, callBack);
} else {
obj.attachEvent("on" + type, callBack);
}
}
//调用addEvent(document,"click",function();
8.事件委托(通过事件对象,获取真正鼠标点击的事件源)
function getTarget(e) {
var target = e.srcElement || e.target;
return target;
}
//调用getTarget();