详细解析DOM事件的event事件对象(一)

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: JavaScript86 篇文章 7 订阅订阅专栏详细解析DOM事件的event事件对象(一)近期我们一直在学习DOM,马上到了尾期了,今天来说一下DOM事件的event事件对象。这里我们先解析一下键盘和鼠标事件的event对象属性。HTML代码: <form> <input type="text" id="text"> <!-- <input type="submit"> --> <button>登录</button> </form> 1 2 3 4 51.键盘事件

详细解析DOM事件的event事件对象(一)




近期我们一直在学习DOM,马上到了尾期了,今天来说一下DOM事件的event事件对象。这里我们先解析一下键盘和鼠标事件的event对象属性。


HTML代码:


<form><inputtype="text"id="text"><!-- <input type="submit"> --><button>登录</button></form>


1.键盘事件的event对象


// 键盘事件的 事件对象属性
    // altKey 返回当事件被触发时,"ALT" 是否被按下。  2
    document.onkeydown=function(ev){
        ev=ev||window.event;// 兼容IE 
        console.log(ev.altKey);
    }
    // ctrlKey  返回当事件被触发时,"CTRL" 键是否被按下。  2
    // shiftKey 返回当事件被触发时,"SHIFT" 键是否被按下。 2
    // metaKey  返回当事件被触发时,"meta" 键是否被按下。  2
    // keyCode  返回onkeypress事件触发的键的值的字符代码,或者 onkeydown 或 onkeyup 事件的键的代码。 2
    document.onkeydown=function(ev){
        ev=ev||window.event;
        console.log(ev.keyCode);
    }
    document.onkeydown=function(ev){
        ev=ev||window.event;
        // console.log(ev.keyCode);
        if(ev.keyCode==16){
            document.onkeypress=function(ev2){
                ev2=ev2||window.event;
                console.log(ev2.keyCode);
            }
        }
    }
    // charCode 返回onkeypress事件触发键值的字母代码。  unicode码
    document.onkeypress=function(ev){
        ev=ev||window.event;
        console.log(ev.charCode);
    }
    // key  在按下按键时返回按键的标识符。 3
    document.onkeydown=function(ev){
        ev=ev||window.event;
        console.log(ev.key);
    }
    // Location 返回按键在设备上的位置 3
    document.onkeydown=function(ev){
        var ev=ev||window.event;
        console.log(ev.location);
    }
    // which  返回onkeypress事件触发的键的值的字符代码,或者 onkeydown 或 onkeyup 事件的键的代码。 2
    document.onkeydown=function(ev){
        var ev=ev||window.event;
        console.log(ev.which);
    }
    // document.getElementsByTagName("button")[0].οnclick=function(){
    //     window.open("01三级联动.html")
    // }
    document.onkeydown=function(ev){
        var ev=ev||window.event;
        if(ev.keyCode==13){
            window.open("01三级联动.html");
        }
    }


2.鼠标事件的event对象



// button 返回当事件被触发时,哪个鼠标按钮被点击。  2
    document.onmousedown=function(ev){
        var ev=ev||window.event;
        console.log(ev.button);// 0左键 1中键 2右键
    }
    // clientX  返回当事件被触发时,鼠标指针的水平坐标。 相对于可视区域
    // clientY  返回当事件被触发时,鼠标指针的垂直坐标。  2
    document.onmousemove=function(ev){
        var ev=ev||window.event;
        // console.log(ev.clientX,ev.clientY);
    }
    // screenX  返回当某个事件被触发时,鼠标指针的水平坐标。 相对于屏幕
    // screenY  返回当某个事件被触发时,鼠标指针的垂直坐标。  2
    document.onmousemove=function(ev){
        var ev=ev||window.event;
        // console.log(ev.screenX,ev.screenY);
    }
    document.onmousemove=function(ev){
        var ev=ev||window.event;
        console.log(ev.offsetX,ev.offsetY);
    }
    document.onmousemove=function(ev){
        var ev=ev||window.event;
        console.log(ev.pageX,ev.pageY);
    }
    document.onmousemove=function(ev){
        var ev=ev||window.event;
        console.log(ev.x,ev.y);
    }
    // relatedTarget  返回与事件的目标节点相关的节点。  2
    document.getElementById("text").onkeydown=function(ev){
        var ev=ev||window.event;
        console.log(ev.relatedTarget);
    }


注意: event对象一定要注意浏览器的兼容问题。


视频讲解链接:
https://www.bilibili.com/video/BV1Vk4y1z7Jm/


相关文章
|
2月前
|
JavaScript 前端开发 Go
CSS 与 JS 对 DOM 解析和渲染的影响
【10月更文挑战第16天】CSS 和 JS 会在一定程度上影响 DOM 解析和渲染,了解它们之间的相互作用以及采取适当的优化措施是非常重要的。通过合理的布局和加载策略,可以提高网页的性能和用户体验,确保页面能够快速、流畅地呈现给用户。在实际开发中,要根据具体情况进行权衡和调整,以达到最佳的效果。
|
29天前
|
缓存 JavaScript 前端开发
JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用
本文深入讲解了 JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用。
42 5
|
2月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
2月前
|
JavaScript 前端开发 算法
React 虚拟 DOM 深度解析
【10月更文挑战第5天】本文深入解析了 React 虚拟 DOM 的工作原理,包括其基础概念、优点与缺点,以及 Diff 算法的关键点。同时,分享了常见问题及解决方法,并介绍了作者在代码/项目上的成就和经验,如大型电商平台的前端重构和开源贡献。
65 3
|
2月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
2月前
|
JavaScript API
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
146 0
|
2月前
|
JavaScript 前端开发 API
深入理解jQuery:高效DOM操作与事件处理
【10月更文挑战第11天】深入理解jQuery:高效DOM操作与事件处理
23 0
|
1月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
71 2
|
2月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
76 0
|
2月前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
62 0

推荐镜像

更多
下一篇
DataWorks