zoukankan      html  css  js  c++  java
  • javascript事件对象修正(处理浏览器间事件对象的差异)

    //修正事件对象 处理兼容性
        fixEvent:function(e){
            var e = e || window.event;
    
            if(!e.target){ //IE
    
                e.target = e.srcElement; //触发事件的对象
    
                e.layerX = e.offsetX; //鼠标在事件对象上的具体为止,W3C DOM 下,需要设置position:absolute; offsetX不包含对象边框,当边框较大时,应该考虑加上clientLeft 和clientTop
                e.layerY = e.offsetY;
    
                e.pageX = e.clientX + document.documentElement.scrollLeft;  //鼠标事件相对整个页面的位置
                e.pageY = e.clientY + document.documentElement.scrollTop;
    
                e.stopPropagation = function(){ //阻止事件冒泡
                    e.cancelBuble = true;
                }
    
                /*
                    再弹出菜单中或者导航条中,会经常使用
                */
                if(e.type == "mouseover"){ // 判断鼠标来自哪个对象
                    e.relatedTarget = e.fromElement;
                }else{
                    e.relatedTarget = e.toElement;// 判断鼠标滑动到哪个对象
                }
    
                e.preventDefault = function(){ //阻止浏览器默认事件
                    e.returnValue = false;
                }
                    
            }
    
            return e;
        };
        
  • 相关阅读:
    PHP线程安全
    Oracle中MD5+Base64加密实现
    1002. A+B for Polynomials (25)
    1001. A+B Format (20)
    Rails,uva 514
    Database,Uva1592
    Hello World for U
    D3.js 力导向图
    从零开始CSS(一 2016/9/21)
    从零开始HTML(三 2016/9/20)
  • 原文地址:https://www.cnblogs.com/iu90/p/event.html
Copyright © 2011-2022 走看看