js完成鼠标点击事件

这篇具有很好参考价值的文章主要介绍了js完成鼠标点击事件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

有个需求是在canvas上画多个可操作的矩形,每个矩形对应一个表单,同时需要校验。在校验到某个表单不通过的时候,需要选中对应的矩形。画图是使用的fabric.js,因为最开始没找到fabric选中图形的方法,就准备用虚拟点击去实现,百度之后实现了点击事件,那就记下来方便以后再需要的时候用吧。

步骤只有三步,或者两步:new一个MounseEvent对象;获取目标节点;向目标节点发送事件对象

1、生成事件,这里是实现了一个拖动canvas的场景,所以弄了鼠标按下和鼠标移动两个事件(以下参数非必要,能实现功能即可,详细配置可参考MDN,文末有链接)

        

// 鼠标按下事件
const eventdown = new MouseEvent("mousedown", {
    button: 0,
    clientX: 1058,
    clientY: 289,
    bubbles: true,
    buttons: 1
})
// 鼠标移动事件
const eventmove = new MouseEvent("mousemove", {
    button: 0,
    clientX: 1000,
    clientY: 240,
    bubbles: true,
    buttons: 1
})

2、获取节点;3、发送事件

const canvas = document.getElementsByClassName("canvasname")[0];
canvas.dispatchEvent(eventdown);
canvas.dispatchEvent(eventmove);

这样就完成了canvas的移动,点击事件也是同理。

js完成鼠标点击事件

 

需要注意的是,在实验过程中,比较难绕过来的一个弯是,我在页面左上角放了一个button按钮并添加的点击事件函数输出事件对象,但是但我把new MouseEvent生成的事件对象发送到body的(0,0)位置的时候,并不能触发button的点击事件。后来发现JS点击事件跟我们操作鼠标不一样,并不是点击哪个坐标就会触发那个坐标的节点的事件,而应该是发送事件的目标节点在该坐标的事件(比如我点击一个canvas,在canvas元素内,坐标clientX是1000,clientY是300的地方有一个可选中对象,那么是可以激活它的。PS:坐标在元素外的场景没试过)。

逻辑应该是在点击事件发生后,从文档最上层开始捕获,到body找到目标事件,之后处理事件,然后向上冒泡,并没有经过button,所以尽管button在(0,0)的位置,但是它的点击事件并没有没触发。但是往button发送点击事件的时候,是可以触发body的事件的,这一点也可以证明以上猜想。

事件构造器配置参数可查看以下网址:

MouseEvent() - Web API 接口参考 | MDN

js完成鼠标点击事件

 

Event() - Web API 接口参考 | MDN

UIEvent() - Web API 接口参考 | MDN

本人在编程方面尚未入门,文章纯属个人备忘之用,发在网上只是希望能够尽量帮到他人,如有错误还请指正,看到消息或评论后会改正。另外,消息评论查看不及时,还望见谅。文章来源地址https://www.toymoban.com/news/detail-488558.html

到了这里,关于js完成鼠标点击事件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue鼠标点击事件和键盘事件

    目录 Vue中的鼠标点击事件修饰符: vue的@click.prevent vue的@click.stop vue的@click.capture vue的@click.once vue的@click.self vue的@click.passive  vue的键盘相应事件 @keydown - 按下键盘上的任意一个键时触发的事件。 @keyup - 松开键盘上的任意一个键时触发的事件。 @keypress - 当按下字符键时触发的

    2024年02月06日
    浏览(94)
  • qt 禁止点击 屏蔽鼠标事件

    我开了一个线程上传文件夹,用一个进度条显示进度 测试 就在界面随便点击 ,也没有出泵任何控件,没有引发槽函数,直接就崩了! 不知道为什么崩了,所以直接禁止点击,蔽鼠标事件! 主界面 进度条 Qt::WidgetAttribute::WA_TransparentForMouseEvents 该属性的含义是“透明掉鼠标事

    2024年02月15日
    浏览(42)
  • [Unity]UI事件(鼠标进入、离开、点击)

    1、首先继承IPointerEnterHandler、IPointerExitHandler等接口 2、实现其方法 如:OnPointerEnter、OnPointerExit 注意:这些只对UI有效,而OnMouseEnter只对加Collider的非UI有效

    2024年03月17日
    浏览(71)
  • Java 后端实现鼠标滚动,点击事件

    参考:Java-随机滑动鼠标和点击_胡安民的博客-CSDN博客_java移动鼠标点击 import java.awt.*; public class MouseTest {     private Dimension dim; //存储屏幕尺寸     private Robot robot;//自动化对象     public MouseTest() {         dim = Toolkit.getDefaultToolkit().getScreenSize();         System.out.println(\\\"屏幕大

    2024年02月14日
    浏览(51)
  • Unity(六)--绑定鼠标点击事件(左键、右键、中键)

    新建一个脚本buttonEvent:

    2024年02月01日
    浏览(55)
  • PyQt实现QSlider滑块鼠标点击事件

    在PyQt添加SQlider滑动条后,发现鼠标点击时滑块只能按照设定步数一步步移动,不能点哪里滑块到哪里。网上查找资料后发现这方面相关参考资料比较少,且大多数文章表述对我个人来说比较难理解,最后综合参考几篇较好的文章后才实现功能,在这里记录一下具体实现方法

    2024年02月09日
    浏览(40)
  • QT笔记——QSlider滑动条滚轮事件和点击鼠标位置事件问题

    需求:我们需要对一个滑动条 滚轮事件 和 点击到滑动条的位置 实时显示 问题:其中在做的时候遇到了很多的问题,一开始感觉很简单,现在将这些问题记录下来 ui图: 问题1:处理QSlider 滚轮事件的时候 这里有很大的问题,但是不知道原因,为什么会出现这样的原因,网上

    2024年02月01日
    浏览(46)
  • 原生js使用canvas实现鼠标绘制直线

    目录 目录 一、原理 二、具体实现 (1)、创建画布 (2)、获取鼠标位置 (3)、创建线段类 (4)、创建主绘制类 (5)、绘制 (6)、效果图  三、源代码 1、原生js 2、vue3实现  直线可以看成是一小段一小段的线段组成,并且两点确定一条直线; 首先当鼠标左键点击时候

    2024年02月12日
    浏览(51)
  • Javascript 、Vue —— 禁止鼠标右键点击事件!

    工作中碰见了奇葩的需求(见多了,也就不奇葩了哈哈)—— 用户让加上鼠标右键点击事件 1、oncontextmenu 事件 定义 : oncontextmenu 事件在元素中用户右击鼠标时触发并打开上下文菜单。 HTML :  JavaScript :  JavaScript 中, 使用 addEventListener() 方法:   注意:  Internet Explorer 8 及更早

    2024年02月07日
    浏览(51)
  • JavaScript——监听事件:点击鼠标,视频静音(原神官网)

    用JS实现视频的静音,可以实现如图按钮所有功能,时间也和视频同步,JS实现。 如图所示, 首先搭个结构 再来看看CSS样式表 最后事件监听要看JavaScript实现 原理: 代码: OK,以上步骤完成,功能即可实现

    2024年02月11日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包