当前位置: 首页 > Web前端 > HTML5

Fabric.js右键菜单

时间:2023-04-04 23:27:30 HTML5

本文介绍Fabric.js默认不提供鼠标右键事件,只有鼠标按键点击、鼠标按键抬起、鼠标移动等事件。但是你可能需要在你的工作中使用“右键单击”事件,比如“右键菜单”。于是有了这篇文章。本文重点介绍Fabric.js的主要API:fireRightClick:允许右键单击stopContextMenu:禁用默认右键菜单mouse:down:鼠标点击事件不了解Fabric.js的可以看《Fabric.js 从入门到___》本案例采用原生方式开发,没有基于Vue、React等框架,所以不用太担心运行环境等问题。案例代码放在文末~环境及版本Chrome浏览器版本:96.0.4664.45Fabric.js版本:4.6.0思路先说说需求:右键元素,弹出菜单;弹出菜单分为4种情况(菜单在鼠标右侧,菜单在鼠标左侧,菜单在鼠标上方,菜单在鼠标下方);左键单击画布上的其他位置以隐藏菜单;实现思路:创建画布;创建“菜单”的DOM元素;去官网找到“右键点击相关事件”;右键点击元素,根据鼠标与画布边缘的距离计算要显示的菜单位置;左键点击canvas隐藏菜单;上面的思路中,难点只是“右键相关事件”,在对象相关的文档中,好像没有鼠标右键事件,鼠标点击稍微有点相关(这里我选择了mousedown)。于是在canvas的文档中搜索,找到了这两个属性:fireRightClick:canvas是否可以触发右键事件stopContextMenu:禁止默认右键菜单哈哈哈哈,开发~仔细观察后发现有一个mouse:down事件按钮属性:左键:按钮值为1右键:按钮值为3中键(即点击滚轮),按钮值为2,前提需要设置fireMiddleClick:true动手开发布局什么都不做

什么都不做
什么都不做
什么都不做
删除此时的效果如上图初始化画布并生成图形添加点击事件(判断右键)在上面的代码中,opt.targetisnull判断当前点击的对象opt.target===null,是在画布上点击(不是在图形元素上点击)。如果你的项目需求是右键画布显示不同的菜单,可以修改上面代码的判断。代码仓库原生方式实现Fabric的右键菜单在Vue3中使用Fabric实现右键菜单功能推荐《Fabric.js 从入门到膨胀》《Fabric.js 渐变效果(包括径向渐变)》如果本文内容对你有帮助,请点个赞~这篇文章由博客发布平台OpenWrite发布!