参数e表示事件
1、获取滚动距离:滚动条
document.documentElement.scrollTop || document.body.scrollTop
document.documentElement.scrollTop ()
document.body.scrollTop() // 兼容IE版本
2、事件中的兼容
e = e || window.event;
标准兼容写法:e.screenX、e.screenY、e.offsetX、e.offsetY
IE兼容写法:window.event、window.event.screenX // 将事件作为window对象的事件属性
3、样式兼容(非行间样式)
getcomputedStyle() 传两个参数 第一个为当前对象 第二个为伪类选择器,通常用false
currentStyle() 使用方式为:对象.current[attr]
4、事件冒泡兼容的解决
e.stopPropagation ? e.stopPropagation() : e.cancelBubble=true; // 不可反过来写
e.stopPropagation() // 标准兼容写法
e.cancelBubble=true; // IE兼容写法
5、默认行为兼容的解决
e.preventDefault ? e.preventDefault() : e.returnValue=false;
preventDefault() // 标准兼容写法
returnValue() // IE兼容写法
6、DOM2级事件监听兼容
addEventListener() || removeEventListener() ; // 标准浏览器的监听和移除写法
attachEvent() || detachEvent() // IE的监听和移除写法
7、事件目标对象兼容
var src = event.target || event.srcElement;
IE的事件对象有srcElement属性,无target属性
标准浏览器的事件对象有target属性,无srcElement属性
8、获取按下的键盘码
e.keyCode || e.which
标准兼容 || IE兼容
9、获取事件源
e.target || e.srcElement // 点击事件,获取的是点击位置标签名(大写)
标准兼容 || IE兼容