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

  • 红米note11怎么显示电池百分比(红米手机note11)

    红米note11怎么显示电池百分比(红米手机note11)

  • 华为nova5pro有没有人脸识别(华为nova5pro有没有指纹解锁)

    华为nova5pro有没有人脸识别(华为nova5pro有没有指纹解锁)

  • 华为荣耀9xpro什么系统(华为荣耀9xpro是不是5g手机)

    华为荣耀9xpro什么系统(华为荣耀9xpro是不是5g手机)

  • 钉钉还能用吗(钉钉可以用吗)

    钉钉还能用吗(钉钉可以用吗)

  • 淘宝保存的图片为什么相册中找不到(淘宝保存的图片怎么去水印)

    淘宝保存的图片为什么相册中找不到(淘宝保存的图片怎么去水印)

  • 手机能注销手机卡吗(手机注销手机号里面的话费怎么办)

    手机能注销手机卡吗(手机注销手机号里面的话费怎么办)

  • 华为电子身份证用途(华为手机身份证扫描件怎么弄)

    华为电子身份证用途(华为手机身份证扫描件怎么弄)

  • cdytn00是什么型号(cdy—an00是什么型号)

    cdytn00是什么型号(cdy—an00是什么型号)

  • 苹果手机无缘无故关机怎么办(苹果手机无缘无故发热)

    苹果手机无缘无故关机怎么办(苹果手机无缘无故发热)

  • WPS如何调整行距(wps如何调整行距和字间距)

    WPS如何调整行距(wps如何调整行距和字间距)

  • 华为曲面屏手机型号(华为曲面屏手机价格)

    华为曲面屏手机型号(华为曲面屏手机价格)

  • 表格怎么加宽行距(表格怎么加宽行距和列宽)

    表格怎么加宽行距(表格怎么加宽行距和列宽)

  • 华为nova6se是5G吗(nova6se是不是5g版手机)

    华为nova6se是5G吗(nova6se是不是5g版手机)

  • 手机页面怎么变黑色的了(手机页面怎么变成黑白的了华为)

    手机页面怎么变黑色的了(手机页面怎么变成黑白的了华为)

  • word变成很多小页了怎么办(word为什么变得很小)

    word变成很多小页了怎么办(word为什么变得很小)

  • ie的兼容性设置在哪里(ie的兼容性设置是什么)

    ie的兼容性设置在哪里(ie的兼容性设置是什么)

  • xr插上耳机为什么没用(为什么xr插了耳机还是外放)

    xr插上耳机为什么没用(为什么xr插了耳机还是外放)

  • ipad如何改字号(ipad怎么调字号)

    ipad如何改字号(ipad怎么调字号)

  • 如何设置纸型为16开(如何设置纸型为16开横向)

    如何设置纸型为16开(如何设置纸型为16开横向)

  • 演示文稿怎么制作(演示文稿怎么制作图片)

    演示文稿怎么制作(演示文稿怎么制作图片)

  • 进快手直播间怎么隐身(进快手直播间怎么隐藏自己)

    进快手直播间怎么隐身(进快手直播间怎么隐藏自己)

  • oppor15x能当遥控器吗(oppor15手机可以当空调遥控器吗)

    oppor15x能当遥控器吗(oppor15手机可以当空调遥控器吗)

  • 魅族手机怎么清理后台(魅族手机怎么清理内存垃圾?)

    魅族手机怎么清理后台(魅族手机怎么清理内存垃圾?)

  • 微信帮助中心在哪里(微信帮助中心在哪里找)

    微信帮助中心在哪里(微信帮助中心在哪里找)

  • 什么是3D游戏开发(3d游戏开发大全)

    什么是3D游戏开发(3d游戏开发大全)

  • 企业所得税更正申报要交滞纳金吗
  • 金税啥意思
  • 运输公司轮胎如何做会计分录
  • 贸易公司经营范围有限制吗
  • 金税盘纳税申报流程
  • 固定资产加速折旧会计处理
  • 企业提供建筑服务,应向建筑服务发生地
  • 企业现金管理办法
  • 股份支付费用的会计处理怎么做?
  • 行政事业单位核算短期投资时有关预算会计核算正确的是
  • 转租的门面怎么办营业执照
  • 计入无形资产
  • 公司股权折价收入怎么算
  • 货样广告品出口需要开票吗
  • 营改增的税收政策
  • 小规模企业申请破产流程
  • 企业发生什么
  • 发票收款人和开票人
  • 居间费税收是多少
  • 无形资产有使用期限
  • 不征税发票如何开具
  • 运费发票备注栏样板
  • 科技型企业科研项目申报
  • 关联企业借款利息税前扣除
  • 床垫专票可以抵扣吗
  • ppt文件打不开了怎么办
  • 年度企业所得税申报表在哪里打印
  • 今年利润弥补以后怎么算
  • 纳税人依法可以享受减免税待遇而没有享受的
  • 公司银行贷款能贷多少
  • 已提折旧固定资产评估增值的会计处理是企业会计准则
  • 如何失业保险金
  • 营改增会计分录
  • 药品生产企业应建立
  • 农村土地承包经营权证丢失怎么补办
  • 跨地区经营建筑企业预缴增值税
  • 学堂在线结课后还能看吗
  • 租用办公设备
  • 侧边导航栏点击后再展开
  • #cookie jar
  • 结转坏账准备是什么意思
  • 除财政部门外,审计税务人民银行
  • 对企业采取以旧换新方式销售的应税产品
  • 生产部门使用的各种机器设备属于什么会计科目
  • 租用办公室装修费用会计分录
  • python lzo
  • 纳税申报表上的销售额
  • sh sqlplus
  • 外贸企业 生产企业
  • 小规模纳税人报税
  • 购买的活动板房可以退吗
  • 预收账款怎么做账
  • 账簿按账页格式排序
  • 屠宰税属于什么税
  • sqlserver删除重复
  • mysql查询慢sql命令
  • vb.net with
  • windowsxp教程
  • 服务器控制电脑
  • ubuntu怎么录音
  • windows自带的碎片整理程序
  • windows软件包2012能删吗
  • win7原始账号和密码
  • win102021年1月大更新
  • win7桌面壁纸自动更换关闭
  • windows8.1的图片
  • config_system_switchs
  • angular jsx
  • js中生成随机数
  • js math.js
  • android 基类
  • js实现网页收藏的方法
  • 如何动态加载外部文件
  • 四川地方税务局网址是什么
  • 一般纳税人开劳务费税率是多少2023
  • 怎么看有没有欠税
  • 企业所得税率2023年
  • 江西医保缴费怎么交
  • 进项税留抵怎么消化掉
  • 年度申报个人所得税专项扣除多填了怎么办
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设