美文网首页
事件对象

事件对象

作者: 悟空你又瘦了 | 来源:发表于2017-07-21 16:20 被阅读0次
  • 三个重要坐标
    document.onclick = function (event) {
        //var event = event || window.event;
        var event = eventUtil.getEvent(event);
        console.log("client: " + event.clientX + "--" + event.clientY);//浏览器窗口
        //page有兼容问题 client没有 我们可以用client来计算page
        var pageX = eventUtil.getPageX(event);
        var pageY = getPageY(event);
        console.log("page: " + event.pageX + "--" + event.pageY);//页面上,如果页面有滚出也要加上
        console.log("screen: " + event.screenX + "--" + event.screenY);//整个屏幕
    };
    //其中 最常用的是page

    function getPageX(event) {
        return event.pageX || event.clientX + document.documentElement.scrollLeft;
    }
    function getPageY(event) {
        return event.pageY || event.clientY + document.documentElement.scrollTop;
    }
  • 计算鼠标在盒子中的位置
<script>
    var box = document.getElementById("box");
    //计算鼠标在盒子中的位置 就是 鼠标在页面上的位置-盒子在页面上的位置
    //鼠标在盒子中移动的时候 把鼠标的位置写在盒子里
    box.onmousemove = function (event) {
        var event = event || window.event;
        //获取鼠标在页面上的位置
        var pageX = event.pageX || event.clientX + document.documentElement.scrollLeft;
        var pageY = event.pageY || event.clientY + document.documentElement.scrollTop;
        //盒子在页面上的位置
        //box.offsetLeft
        //box.offsetTop
        //计算 鼠标 在盒子中的位置
        var boxX = pageX - box.offsetLeft;
        var boxY = pageY - box.offsetTop;
        box.innerHTML = boxX + "---" + boxY;
    };
</script>
  • 阻止事件冒泡
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<button id="btn">按钮</button>
<script>

    var btn = document.getElementById("btn");
    btn.onclick = function (event) {
        alert("按钮被点击啦");
        var event = event || window.event;
        event.stopPropagation();
    };
    document.onclick = function () {
        alert("文档被点击了");
    };
</script>
</body>
</html>
封装
<script>
    var btn = document.getElementById("btn");
    btn.onclick = function (event) {
        alert("按钮被点击啦");
        var event = event || window.event;
        stopPropagation(event);
    };
    function stopPropagation(event) {
        if (event.stopPropagation) {
            event.stopPropagation();
        } else {
            event.cancelBubble = true;
        }
    }
</script>
  • even 对象封装
var eventUtil = {
    getEvent: function (event) {
        return event || window.event;
    },
    getPageX: function (event) {
        return event.pageX || event.clientX + document.documentElement.scrollLeft;
    },
    getPageY: function (event) {
        return event.pageY || event.clientY + document.documentElement.scrollTop;
    },
    stopPropagation: function (event) {
        if (event.stopPropagation) {
            event.stopPropagation();
        } else {
            event.cancelBubble = true;
        }
    },
    getTarget: function (event) {
        return event.target || event.srcElement;
    }
};

相关文章

  • JavaScript事件03——事件对象

    大纲:事件对象(DOM中的事件对象,IE中的事件对象,跨浏览器) 一、事件对象 什么是事件对象? 在触发DOM上的...

  • 【事件】事件对象

    触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件有关的额信息。(包括导致事件的元...

  • 事件对象

    事件对象:当触发某种事件时,可以获取一个对象,该对象与触发的事件是相关的,我们把他们称之为事件对象 事件对象也是一...

  • dom事件对象

    事件定义 常见事件 常见绑定方法 事件对象 鼠标键盘事件对象

  • 原生事件对象

    事件对象: 每当触发事件时,就会产生一个事件对象(不管是DOM 0 还是DOM2 都有事件对象)[ 事件对象操作的...

  • 事件

    1. 注册事件 事件监听方式: 2. 删除事件 3. 事件对象 3.1事件对象使用语法 3.2 事件对象的常见属性...

  • JavaScript(二)

    JavaScript对象 事件对象 type获取事件类型,显示事件为点击事件click target 获取事件目标...

  • this和e.target的异同

    简单分析 每次触发DOM事件时会产生一个事件对象(也称为event对象),此处的参数接收事件对象,而事件对象也有很...

  • 事件对象

    什么是事件对象?在触发DOM上的事件时都会产生一个对象 事件对象event DOM中的事件对象 (1) type属...

  • VC++(十六)线程同步与异步套接字编程

    事件对象也属于内核对象,分为两种:人工重置的事件对象和自动重置的事件对象。 当人工重置的事件对象得到通知时,等待该...

网友评论

      本文标题:事件对象

      本文链接:https://www.haomeiwen.com/subject/evdekxtx.html