位置: 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)

  • cpu温度过高(cpu温度)(CPU温度过高会怎么样)

    cpu温度过高(cpu温度)(CPU温度过高会怎么样)

  • 美团众包怎么加入(美团众包怎么加入站点对话)

    美团众包怎么加入(美团众包怎么加入站点对话)

  • 华为Mate10Pro防水吗(华为mate10pro防水广告)

    华为Mate10Pro防水吗(华为mate10pro防水广告)

  • 怎么查行程码详细记录(怎么查行程码?)

    怎么查行程码详细记录(怎么查行程码?)

  • 荣耀30s有耳机孔吗(荣耀30s耳机孔和充电孔是一个吗)

    荣耀30s有耳机孔吗(荣耀30s耳机孔和充电孔是一个吗)

  • 华为p40pro屏幕像素密度ppi是多少呢(华为p40pro屏幕感觉不清晰)

    华为p40pro屏幕像素密度ppi是多少呢(华为p40pro屏幕感觉不清晰)

  • 怎么在不拨通号码情况下知道对方手机是否关机(怎么不拨打电话)

    怎么在不拨通号码情况下知道对方手机是否关机(怎么不拨打电话)

  • 淘宝给卖家发消息叹号(淘宝给卖家发消息发不过去)

    淘宝给卖家发消息叹号(淘宝给卖家发消息发不过去)

  • 蓝光4m是什么意思(蓝光4m是多少码率)

    蓝光4m是什么意思(蓝光4m是多少码率)

  • macromedia flash player是什么(macromedia flash player 8打不开)

    macromedia flash player是什么(macromedia flash player 8打不开)

  • 计算机之所以能实现自动连续运算是由于采用了什么原理(计算机之所以能按人们的)

    计算机之所以能实现自动连续运算是由于采用了什么原理(计算机之所以能按人们的)

  • 轮播图是什么(轮播图是什么效果)

    轮播图是什么(轮播图是什么效果)

  • 微信账单删除了还能导出吗(微信账单删除了能恢复吗)

    微信账单删除了还能导出吗(微信账单删除了能恢复吗)

  • 抖音为什么播放量为零(抖音为什么播放了不动了)

    抖音为什么播放量为零(抖音为什么播放了不动了)

  • Excel文档包括(excel有文档处理功能吗)

    Excel文档包括(excel有文档处理功能吗)

  • 短信软件卸载了怎么办(短信卸载了怎么恢复正常)

    短信软件卸载了怎么办(短信卸载了怎么恢复正常)

  • ipadair3支持pencil2吗(ipadair3支持pencil一代还是二代)

    ipadair3支持pencil2吗(ipadair3支持pencil一代还是二代)

  • 为什么微信点赞不提醒(为什么微信点赞别人的也要显示)

    为什么微信点赞不提醒(为什么微信点赞别人的也要显示)

  • word文档怎么去掉修订(word文档怎么去掉批注和修改)

    word文档怎么去掉修订(word文档怎么去掉批注和修改)

  • 微信自动扣费怎么关闭(微信自动扣费怎么取消扣款)

    微信自动扣费怎么关闭(微信自动扣费怎么取消扣款)

  • 微信号被别人注册了怎么办(微信号被别人注销了怎么恢复)

    微信号被别人注册了怎么办(微信号被别人注销了怎么恢复)

  • 手机支付宝账号怎么看(手机支付宝账号怎么改成邮箱)

    手机支付宝账号怎么看(手机支付宝账号怎么改成邮箱)

  • 华为honor9是什么型号(honor9是什么型号)

    华为honor9是什么型号(honor9是什么型号)

  • iphone墙纸不能缩放(iphone墙纸设置无法移动缩放图片)

    iphone墙纸不能缩放(iphone墙纸设置无法移动缩放图片)

  • 华为手机车钥匙功能在哪里(华为手机车钥匙怎么配对)

    华为手机车钥匙功能在哪里(华为手机车钥匙怎么配对)

  • iPhone与多台电脑(多个iTunes)同步的方法(iphone和电脑同步)

    iPhone与多台电脑(多个iTunes)同步的方法(iphone和电脑同步)

  • 企业技术转让享受税收优惠政策应符合哪些条件
  • 递延所得税负债账务处理
  • 企业所得税从业人数怎么填,依据什么填写
  • 税务专业是什么学位
  • 开发商交的税费是什么
  • 怎么看自己公司是一般纳税人还是小规模纳税人
  • 免费给客户提供服务怎么做账
  • 补开去年未开票收入
  • 接受固定资产投资的企业,应该按照投资合同
  • 公司向个人租赁设备
  • 应付利息与应付利息区别
  • 注册资本印花税计入哪个科目
  • 现代服务业要满足什么条件才转一般纳税人
  • 小规模纳税人未开票收入填在哪里
  • 待转销项税额会计分录
  • 营改增之前
  • 营改增后房屋出租税率
  • 资产负债表应收账款是负数怎么回事
  • 固定资产采用历史成本计价
  • 房地产企业城市配套费
  • 法人股东分红如何申报所得税
  • 如何在excel中制作柱状图
  • win10打开游戏老是提示
  • 结转已经销售商品成本
  • 股东之间转让股权需要股东会决议吗
  • 财务工作中如何用进销存软件
  • macOS Big Sur 11.2 公测版 beta 1怎么更新?
  • 企业清算所得税如何计算
  • 斯塔尔德
  • 土地增值税的意思
  • svg图形是什么
  • python字符串操作作业
  • PHP curl 或 file_get_contents 获取需要授权页面的方法
  • jquery 批量删除
  • 公户发工资必须是员工账号必须是公户开户行吗
  • node安装配置环境变量
  • 服务业的增值税
  • php二维数组的遍历
  • 已缴款未入库是扣款成功了吗
  • linux系统操作教程
  • phpcms使用教程
  • 企业基本户是对公账户吗
  • 企税申报表怎么填
  • mongodb启动
  • Shading-JDBC、ShadingSphere、ShardingProxy 使用详解
  • 服装加工税率是13%还是16%
  • 怎样增加资产负债率
  • 临时工的劳务费需要申报个税吗?
  • 分公司挣的钱归谁所有
  • 去年未计提费用,今年付怎么做账
  • 库存商品期末为负数
  • 预付卡销售和充值可以报销吗
  • 资产减值哪些资产
  • 员工工资怎么核算
  • 企业受赠资产会计处理
  • 住房租金专项附加扣除金额
  • 普通发票作废的金额会扣税吗
  • 成本核算的内容有哪几个方面
  • 报销程序是什么
  • 应发和实发工资账务处理
  • 工会经费是什么凭证
  • sql server怎么复制表
  • MySQL5.7中 performance和sys schema中的监控参数解释(推荐)
  • SQLServer Top语句参数化方法
  • win7自带画图软件
  • 拖放文件到此处来添加文件是什么意思
  • Ubuntu上安装anaconda
  • ubuntu文本编辑器怎么打开
  • Win10 Mobile build 14393.189安装与上手体验视频
  • win10系统打不开jpg图片
  • win8的运行在哪里打开
  • kill命令用法
  • win7不能自动启动
  • jquery示例
  • unity3d音效
  • js日历控件代码和效果
  • 推荐一些非常不好的书
  • pythondjango框架 目录结构
  • t+怎么取消记账凭证
  • 北京税务局网上办税服务厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设