跨浏览器鼠标按钮:
function(evt){
let e=evt||window.event;
if(evt){
return e.button;
}else if(window.event){
switch(e.button){
case 1:
return 0;
case 4:
return 1;
case 2:
return 2;
case 0: //360浏览器
return 0;
}
}
}
//clientX 事件属性返回当事件被触发时鼠标指针向对于浏览器页面(或客户区)的水平坐标,客户区指的是当前窗口。
function(evt){
let e=evt||window.event;
let clientX,clientY;
clientX=e.clientX;
clientY=e.clientY
return {
clientX,
clientY
}
}
//所有浏览器都支持字符按键。
function getCharCode(evt){
let e=evt||window.event;
if(typeof e.charCode=='number'){
return e.charCode;
}else{
return e.keyCode;
}
}
//点击哪里,获取哪里的dom对象。
function getTarget(evt){
let e=evt||window.event;
return e.target||e.srcElement;
}
//取消冒泡。
function setStop(evt){
let e=evt||window.event;
(typeof e.stopPropagation=='function')?e.stopPropagation():e.cancelBubble=true;
}
//onload绑定多事情,避免覆盖的思路:
window.onload=function(){
alert('lee');
};
if(typeof window.onload=='function'){
var saved=null;/*保存上一个事件*/
saved=window.onload;
};
window.onload=function(){
saved();
alert('Mr lee');
}
w3c中的事件绑定:obj.addEventListener('load',fn,false),其中最后的的参数为false时确当当前事件为冒泡,true为捕获
//跨浏览器添加事件:
function addEvent(obj,type,fn){
if(obj.addEventListener){
obj.addEventListener(type,fn,false);
}else if(obj.attachEvent){
obj.attachEvent('on'+type,fn);
}
}
//跨浏览器移除事件:
function removeEvent(obj,type,fn){
if(obj.removeEventListener){
obj.removeEventListener(type,fn,false);
}else if(obj.detachEvent){
obj.detachEvent('on'+type,fn);
}
}
//跨浏览器获取目标对象:
function getTarget(evt){
if(evt.target){
return evt.target;
}else if(window.event.srcElement){
return window.event.srcElement
}
}
//mouseover和mouseout得到鼠标最近移入和移出的dom对象
function getTarget(evt){
var e=evt||window.event;
if(e.srcElement){
if(e.type=='mouseover'){
return e.fromElement.tagName;
}else if(e.type=='mouseout'){
return e.toElement.tagName;
}
}else if(e.relatedTarget){
return e.relatedTarget;
}
}
//阻止默认事件:return false阻止默认事件不好的原因,必须放在函数内部最后,下面的兼容的写法
function preDef(evt){
var e=evt||window.event;
if(e.preventDefault){
e.preventDefault();
}else{
e.returnValue=false;
}
}
//滚轮事件:
function WheelDetail(evt){
let e=evt||window.event;
if(e.wheelDelta){
return e.wheelDelta;
}else if(evt.detail){
return -evt.detail*30;
}
}