JS中的(event)事件对象

JS中的(event)事件对象

事件对象

什么是事件对象?

  • 事件对象就是当你触发了一个事件以后,对该事件的一些描述信息
  • 每一个事件都会有一个对应的对象来描述这些信息,我们就把这个对象叫做事件对象

例如:

  • 你触发一个点击事件的时候,你点在哪个位置了,坐标是多少

  • 你触发一个键盘事件的时候,你按的是哪个按钮

鼠标触发事件的话,会得到鼠标的相关数据,

键盘触发事件的话,会得到键盘的相关数据,键盘事件只有可以获取焦点的元素可以使用

事件对象的使用

事件触发时就会自动产生这个事件对象,并且会自动跟随事件函数的参数传递,会当做事件函数的实参传递给函数内部,所以要使用事件对象则给事件绑定的函数需有一个形参,这个形参来接受事件对象。(旧版本中,基本上是通过浏览器中的window对象寻找event,再获取相关对象)

鼠标/键盘事件对象

属性 描述
e.altKey 返回当事件被触发时,“ALT” 是否被按下。
e.button 返回当事件被触发时,哪个鼠标按钮被点击。
e.clientX 返回当事件被触发时,鼠标相对于浏览器窗口可视区域的X坐标
e.clientY 返回当事件被触发时,鼠标相对于浏览器窗口可视区域的Y坐标
e.pageX 鼠标相对于当前Document文档的X坐标,IE9以上
e.pageY 鼠标相对于当前Document文档的Y坐标,IE9以上
e.ctrlKey 返回当事件被触发时,“CTRL” 键是否被按下。
e.Location 返回按键在设备上的位置
e.charCode 返回onkeypress事件触发键值的字母代码。
e.key 键盘事件键盘按下时按键的键值
e.keyCode 键盘事件键盘按下时按键的大写字母的ASCII码
e.which 返回onkeypress事件触发的键的值的字符代码,或者 onkeydown 或 onkeyup 事件的键的代码。
e.metaKey 返回当事件被触发时,“meta” 键是否被按下。
e.relatedTarget 返回与事件的目标节点相关的节点。
e.screenX 返回当某个事件被触发时,鼠标相对于电脑屏幕的X坐标
e.screenY 返回当某个事件被触发时,鼠标相对于电脑屏幕的Y坐标
e.shiftKey 返回当事件被触发时,“SHIFT” 键是否被按下。
e.target 返回触发事件的对象(标准)
e.srcElement 返回触发事件的对象(非标准)
e.type 返回触发事件的事件类型
e.cancelBubble 该属性阻止事件冒泡(非标准)
e.returnValue 该属性阻止默认事件(非标准)
e.preventDefault() 该方法阻止默认事件(标准)
e.stopPropagation() 该方法阻止事件冒泡(标准)

注意:e.target是事件触发的元素,this是事件的绑定元素,两者不能混淆!

实例

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>遮罩界面窗口移动</title>
    <!-- css样式 -->
    <style>
        * {
    
    
            margin: 0px;
            padding: 0px;
        }

        .div {
    
    
            width: 100%;
            height: 555px;
            background-color: rgba(156, 159, 161, 0.253);
            display: none;
            padding-top: 200px;
            position: relative;
        }

        .box {
    
    
            width: 300px;
            height: 125px;
            text-align: center;
            padding-top: 25px;
            margin: 0 auto;
            background-color: skyblue;
            border: 1px solid black;
            position: absolute;
            left: 500px;
        }

        button {
    
    
            margin-top: 100px;
            margin-left: 700px;
        }
    </style>
</head>

<body>
    <!-- 点击登录按钮 -->
    <button>点击登录</button>
    <!-- 遮罩界面窗口 -->
    <div class="div">
        <div class="box">
            用户名:<input type="text" placeholder="请输入用户名">
            <br>
            <br>&nbsp;&nbsp;:<input type="password" placeholder="请输入密码">
            <br>
            <br>
            <input type="button" value="点击登录">
        </div>
    </div>
    <!-- javascript设置效果 -->
    <script>
        // 预加载
        window.onload = function () {
    
    
            // 获取页面元素
            var btn = document.querySelector("button")
            var div = document.querySelector(".div")
            var box = document.querySelector(".box")
            // 为按钮添加点击事件
            btn.onclick = function () {
    
    
                btn.style.display = "none"
                div.style.display = "block"
            }
            // 设置遮罩页面跟随鼠标的位置进行移动
            box.addEventListener("mousedown", fun)
            function fun(e) {
    
    
                var num = e.clientX - box.offsetLeft
                var nume = e.clientY - box.offsetTop
                document.onmousemove = function (e) {
    
    
                    var left = e.clientX - num;
                    var top = e.clientY - nume;
                    box.style.left = left + 'px';
                    box.style.top = top + 'px';
                }
                // 设置鼠标松开以后事件释放
                document.onmouseup = function () {
    
    
                    this.onmousemove = null;
                    this.onmouseup = null;
                }
            }
        }
    </script>
</body>

</html>

猜你喜欢

转载自blog.csdn.net/XVJINHUA954/article/details/111830092