位置: IT常识 - 正文

JS中的鼠标事件(js鼠标键盘事件)

编辑:rootadmin
JS中的鼠标事件

目录

前言

一、鼠标事件属性

1. MouseEvent.button属性

2. MouseEvent.clientX,MouseEvent.clientY

 3. MouseEvent.offsetX,MouseEvent.offsetY

 4. MouseEvent.pageX,MouseEvent.pageY

二、案例

1.案例一

2. 案例二

总结

前言

推荐整理分享JS中的鼠标事件(js鼠标键盘事件),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js的鼠标点击事件,js操作鼠标,js中的鼠标事件有哪些,js中的鼠标事件有哪些,js的鼠标事件改变盒子宽度,js中的鼠标事件有哪些,js中的鼠标事件有哪些,js中的鼠标事件有哪些,内容如对您有帮助,希望把文章链接给更多的朋友!

通过鼠标触发事件,类似用户的行为:

属性描述onclick当单击鼠标时运行脚本。onmousedown当按下鼠标按钮时运行脚本。onmouseup当松开鼠标按钮时运行脚本。onmousemove当鼠标指针移动时运行脚本。onmouseover当鼠标指针移至元素之上时运行脚本,不可以阻止冒泡。onmouseout当鼠标指针移出元素时运行脚本,不可以阻止冒泡。onmouseenter当鼠标指针移至元素之上时运行脚本,可以阻止冒泡。onmouseleave当鼠标指针移出元素时运行脚本,可以阻止冒泡。onmousewheel当转动鼠标滚轮时运行脚本。onscroll当滚动元素的滚动条时运行脚本。

mouseover事件和mouseenter事件,都是鼠标进入一个节点时触发。两者的区别是,mouseenter事件只触发一次,而只要鼠标在节点内部移动,mouseover事件会在子节点上触发多次。

var div = document.getElementById("div")var p = document.getElementById("p")div.onmouseover=function(){ console.log("div")}p.onmouseover=function(){ console.log("p") } //冒泡阶段div.onmouseenter=function(){ console.log("div")}p.onmouseenter=function(){ console.log("p")} //捕获阶段一、鼠标事件属性1. MouseEvent.button属性

MouseEvent.button属性返回一个数值,表示事件发生时按下了鼠标的哪个键。 0代表左键 1代表中键 2代表右键

document.body.onmousedown=function(e){ e=e||window.event console.log(e.button)}2. MouseEvent.clientX,MouseEvent.clientY

MouseEvent.clientX属性返回鼠标位置相对于浏览器窗口左上角的水平坐标, MouseEvent.clientY属性返回鼠标位置相对于浏览器窗口左上角的垂直坐标, 这两个属性都是只读属性。

document.body.onmousedown=function(e){ e=e||window.event console.log(e.clientX,e.clientY)} 3. MouseEvent.offsetX,MouseEvent.offsetY

MouseEvent.offsetX属性返回鼠标位置距离事件作用对象左侧边缘的水平距离, MouseEvent.offsetY属性返回鼠标位置距离事件作用对象左侧边缘的垂直距离, 这两个属性都是只读属性。

div.onclick=function(e){ e=e||window.event console.log(e.offsetX,e.offsetY) //鼠标事件触发时,当前鼠标位置距离目标节点左上角的距离} 4. MouseEvent.pageX,MouseEvent.pageYJS中的鼠标事件(js鼠标键盘事件)

MouseEvent.pageX属性返回鼠标位置距离文档左侧边缘的距离, MouseEvent.pageY属性返回鼠标位置距离文档顶部的距离。 这两个属性都是只读属性。

document.body.onclick=function(e){ e=e||window.event console.log("pageY:"+e.pageY) //距离文档顶部 console.log("clientY:"+e.clientY) //距离可视窗口顶部}二、案例1.案例一

创建一个正方形div,默认颜色为黑色,当鼠标移入div,背景颜色变为红色,当鼠标移出div,背景颜色变为绿色

代码如下(示例):

<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title></title></head><body><div id="box" style="width: 100px;height: 100px;background: black;"></div><!-- 在这里写JavaScript代码,因为JavaScript是由上到下执行的 --><script> var box = document.getElementById("box"); /* 当鼠标移入div,背景颜色变为红色 */ box.onmouseenter = function () { this.style.background = "red"; }; /* 当鼠标移出div,背景颜色变为绿色 */ box.onmouseleave = function () { this.style.background = "green"; };</script></body></html>2. 案例二

编写一个通用的拖拽元素函数,创建两个div,进行拖拽演示,要求兼容IE8、火狐、谷歌等主流浏览器

代码如下(示例):

<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title></title></head><body><div id="box1" style="width: 100px;height: 100px;background: red;position: absolute;"></div><div id="box2" style="width: 100px;height: 100px;background: green;position: absolute;"></div><!-- 在这里写JavaScript代码,因为JavaScript是由上到下执行的 --><script> var box1 = document.getElementById("box1"); var box2 = document.getElementById("box2"); drag(box1); drag(box2); /* * 提取一个专门用来设置拖拽的函数 * 参数:开启拖拽的元素 */ function drag(obj) { //当鼠标在被拖拽元素上按下时,开始拖拽 obj.onmousedown = function (event) { // 解决事件的兼容性问题 event = event || window.event; // 设置obj捕获所有鼠标按下的事件 /** * setCapture(): * 只有IE支持,但是在火狐中调用时不会报错, * 而如果使用chrome调用,它也会报错 */ obj.setCapture && obj.setCapture(); // obj的偏移量 鼠标.clentX - 元素.offsetLeft // obj的偏移量 鼠标.clentY - 元素.offsetTop var ol = event.clientX - obj.offsetLeft; var ot = event.clientY - obj.offsetTop; // 为document绑定一个鼠标移动事件 document.onmousemove = function (event) { // 解决事件的兼容性问题 event = event || window.event; // 当鼠标移动时被拖拽元素跟随鼠标移动 // 获取鼠标的坐标 var left = event.clientX - ol; var top = event.clientY - ot; // 修改obj的位置 obj.style.left = left + "px"; obj.style.top = top + "px"; }; // 为document绑定一个鼠标松开事件 document.onmouseup = function () { // 取消document的onmousemove事件 document.onmousemove = null; // 取消document的onmouseup事件 document.onmouseup = null; // 当鼠标松开时,取消对事件的捕获 obj.releaseCapture && obj.releaseCapture(); }; /* * 当我们拖拽一个网页中的内容时,浏览器会默认去搜索引擎中搜索内容, * 此时会导致拖拽功能的异常,这个是浏览器提供的默认行为, * 如果不希望发生这个行为,则可以通过return false来取消默认行为, * 但是这招对IE8不起作用 */ return false; }; }</script></body></html>总结

假如我们正监视一个容器上的鼠标事件,而容器中添加了一些组件,则当在组件上进行单击鼠标、移动鼠标等操纵时,容器将不知道这些操纵的发生。

可以使用鼠标事件的转移将一个事件源发生的鼠标事件转移到另一个事件源上,也就是说,当用户的在某个事件源上单击鼠标时,可以通过鼠标事件的转移导致另一个事件源上发生鼠标事件(声东击西)。使用javax.swing包中的SwingUtilities类的静态方法:

MouseEvent convertMouseEvent(Component source,MouseEvent sourceEvent,Component destination)

可以将source组件上发生的鼠标事件转移到组件destination,该方法返回转移后的鼠标事件。 在下面的例子mouse6.java中,用户单击一个按钮,然后拖动鼠标移动按钮的位置,观察鼠标事件的转移。

       以上就是今天要讲的内容,本文仅仅简单介绍了JS中的鼠标事件。

本文链接地址:https://www.jiuchutong.com/zhishi/296039.html 转载请保留说明!

上一篇:Nginx 调整文件上传大小限制(nginx配置文件格式)

下一篇:Pytorch 2.0来了!来看看新特性怎么应用到自己的代码里(pytorch1.9.0)

  • python中def怎么用(def在python中用法)

    python中def怎么用(def在python中用法)

  • 华为手环7怎么换壁纸(华为手环7怎么充电)

    华为手环7怎么换壁纸(华为手环7怎么充电)

  • 数据透视表怎么更新数据(数据透视表怎么变成正常的表格)

    数据透视表怎么更新数据(数据透视表怎么变成正常的表格)

  • word制表位位置怎么设置(Word制表位位置怎么设置 Word制表位显示不出来)

    word制表位位置怎么设置(Word制表位位置怎么设置 Word制表位显示不出来)

  • 天猫精灵怎么添加设备(天猫精灵怎么添加本地音乐)

    天猫精灵怎么添加设备(天猫精灵怎么添加本地音乐)

  • 怎么在手机上看自己的身份证号码(怎么在手机上看银行卡余额)

    怎么在手机上看自己的身份证号码(怎么在手机上看银行卡余额)

  • 高德地图怎么设置高速优先(高德地图怎么设置位置定位)

    高德地图怎么设置高速优先(高德地图怎么设置位置定位)

  • vivo NEX 3s搭载的是哪个系统(vivo nex3s值得入手吗)

    vivo NEX 3s搭载的是哪个系统(vivo nex3s值得入手吗)

  • 京东拒收可以全额退款吗(京东拒收收快递费吗)

    京东拒收可以全额退款吗(京东拒收收快递费吗)

  • 摩托罗拉折叠手机发布时间(摩托罗拉折叠手机2023怎么样)

    摩托罗拉折叠手机发布时间(摩托罗拉折叠手机2023怎么样)

  • 电脑触屏怎么点击右键(电脑触屏怎么点不到)

    电脑触屏怎么点击右键(电脑触屏怎么点不到)

  • 华为pro什么意思(华为 pro什么意思)

    华为pro什么意思(华为 pro什么意思)

  • 蚂蚁森林收能量能干啥(蚂蚁森林收能量有什么用)

    蚂蚁森林收能量能干啥(蚂蚁森林收能量有什么用)

  • 红米note8pro声波除尘怎么用(红米note8pro声音小怎么才能让声音变大)

    红米note8pro声波除尘怎么用(红米note8pro声音小怎么才能让声音变大)

  • 1.5vaaa电池是几号(1.5v aa电池容量)

    1.5vaaa电池是几号(1.5v aa电池容量)

  • 苹果手机进软件老是闪退怎么回事(苹果手机进软件黑屏)

    苹果手机进软件老是闪退怎么回事(苹果手机进软件黑屏)

  • 华为手机怎么弄应用分身(华为手机怎么弄返回键)

    华为手机怎么弄应用分身(华为手机怎么弄返回键)

  • 苹果7p建议升级13的系统不(苹果7p建议升级15.72吗)

    苹果7p建议升级13的系统不(苹果7p建议升级15.72吗)

  • 淘宝的二手市场叫什么(淘宝的二手市场在哪里)

    淘宝的二手市场叫什么(淘宝的二手市场在哪里)

  • 举报soul用户对方会知道吗(举报soul平台)

    举报soul用户对方会知道吗(举报soul平台)

  • 高清机顶盒和普通机顶盒的区别(高清机顶盒和普通机顶盒的卡通用吗)

    高清机顶盒和普通机顶盒的区别(高清机顶盒和普通机顶盒的卡通用吗)

  • 软件开发是干什么的(软件开发?)

    软件开发是干什么的(软件开发?)

  • 苹果6p屏幕失灵乱跳(苹果6p屏幕失灵点不动怎么办)

    苹果6p屏幕失灵乱跳(苹果6p屏幕失灵点不动怎么办)

  • 网易考拉怎么看优惠券(网易考拉怎么看总账单)

    网易考拉怎么看优惠券(网易考拉怎么看总账单)

  • mktemp命令  建立暂存文件(mkpart命令)

    mktemp命令 建立暂存文件(mkpart命令)

  • python生成器的三种构建方法(python生成器的应用场景)

    python生成器的三种构建方法(python生成器的应用场景)

  • 资产负债表里的存货包括哪些科目
  • 销售货物业务的销项税额怎么计算
  • 没有收入可以不给抚养费吗
  • 企业所得税纳税人
  • 债权投资产生的利息调整包括哪些内容
  • 代开的增值税专用发票应怎样填写?
  • 银行业务结算内容
  • 事业单位跨年度错账调整
  • 一般存款账户可以转账给个人吗
  • 营业执照印花税减免政策
  • 建筑业增值税普通发票可以抵扣吗
  • 2018年生育保险报销
  • 机动车统一发票税率多少
  • 处于汇总期
  • 其他收益纳税
  • 发票月初抄税流程
  • 定额发票存根联丢失如何处罚
  • 小微企业差旅费可以税前扣除吗
  • 未确认融资费用属于企业资产类科目对不对
  • windows10如何开机直接进入桌面
  • 核定征收要交企业所得税吗
  • 软件和硬件的成本按销售占比做分摊怎么算
  • 非合理损耗怎么做分录
  • 土地价款会计分录
  • 前端文件的上传和下载
  • php 输出
  • 快递破损后赔偿还能把东西拿走吗
  • 应收预收的区别
  • 年金现值系数公式记忆
  • 收货和入库的区别
  • db2入门
  • sql随机抽取
  • 固定资产核算应包括什么
  • 增值税专用发票几个点
  • 对公账户里的钱怎么转出来合法
  • 固定资产汽车折旧年限是多少年
  • 平销返利如何开票是负数的
  • 营改增后所得税怎么计算
  • 企业场地租金收入交什么税
  • 购入软件的账务处理
  • 财政补助结转结转的依据
  • 发票报销抵扣税点是给谁
  • 代收的车船税没交怎么办
  • 代开专票是指?
  • 营业外支出的性质
  • 主营业务成本与其他业务成本的区别
  • 预付账款暂估是什么意思
  • 百旺金赋税盘怎么清卡
  • 企业年度报告中的什么信息由企业选择是否向社会公示
  • 错误的英文
  • Python3.6-MySql中插入文件路径,丢失反斜杠的解决方法
  • mysql@变量
  • qq8.2.1版本下载正式版
  • server2008 无法启动
  • win8系统如何开机直接进入桌面
  • linux w
  • linux配置光纤
  • xp局域网文件共享设置
  • win10周年版
  • 自动隐藏桌面图标
  • executor进程
  • win10一周年深色主题
  • windows8用的人少
  • linux小技巧
  • vs2013怎么配置环境
  • jquery刷新局部页面
  • node.js 10实战
  • unity shader cull off
  • flask开发实例
  • fragment detach
  • python生成pyc
  • easyui怎么用
  • js垂直对齐
  • 广西地方税务局2018年1号公告
  • 税务部门的扣款协议
  • 企业去哪查
  • 怎么称呼税管员比较好
  • 企业未开立基本存款账户承诺书的相关规定
  • 贵州税务发票流向查询
  • 杭州国税电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设