javascript实现自定义右键菜单(绑定鼠标左右键)

这篇具有很好参考价值的文章主要介绍了javascript实现自定义右键菜单(绑定鼠标左右键)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

javascript实现自定义右键菜单

思路

思路:
1.绑定右键函数。
2.获取鼠标右键按下位置的x坐标(到左面的距离),y坐标(到上面的距离)。
3.获取滚动条向下滚动距离,获取滚动条向左滚动距离
4.最后+‘px’,补全单位,添加到元素style属性,将元素移动到鼠标右键位置

1绑定右键函数

<script>
document.oncontextmenu=function(o)  //绑定右键
{

}

2.获取鼠标右键按下位置的x坐标(到左面的距离),y坐标(到上面的距离)。

var x=o.clientX;//左距离
var y=o.clientY;//右距离

3.获取滚动条向下滚动距离,获取滚动条向左滚动距离

let scrolltop=document.documentElement.scrollTop || document.body.scrollTop;//滚动条向下滚动距离
let scrollleft=document.documentElement.scrollLeft ||document.body.scrollLeft;//滚动条向左滚动距离

4.最后+‘px’,补全单位,添加到元素style属性里。

var button1=document.getElementById("1");
button1.style.left=x+scrollleft+'px';
button1.style.top=y+scrolltop+'px';

5.完整代码:

<button type="button" id="1" style="position: absolute;z-index: 1;">上一页</button>
<script>
		document.oncontextmenu=function(o)//右键
			{
			var x=o.clientX;//左距离
			var y=o.clientY;//右距离
			var button1=document.getElementById("1");
			let scrolltop=document.documentElement.scrollTop || document.body.scrollTop;//滚动条向下滚动距离
			let scrollleft=document.documentElement.scrollLeft || document.body.scrollLeft;//滚动条向左滚动距离
			button1.style.top=y+scrolltop+'px';//添加到style
			button1.style.left=x+scrollleft+'px';//添加到style
			return false;//这一步非常重要,关闭浏览器默认右键菜单
		}
</script>		

6.注意点

重要的事情说三遍:
代码最后的 return false; 关闭浏览器默认右键菜单,非常重要!
代码最后的 return false; 非常重要!!
代码最后的 return false; 非常重要!!!

扩展:绑定左键

目的:获取左键按下的元素,获取其 id

<script>
		  document.onclick=function(t){ //绑定左键
			if(t.target.id=="1")//获取并判断id
			{
					console.log("button1 is click!");
			}
		}
	</script>

如果我对你有帮助,请留下一个赞鼓励我一下吧文章来源地址https://www.toymoban.com/news/detail-483993.html

到了这里,关于javascript实现自定义右键菜单(绑定鼠标左右键)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Unity(六)--绑定鼠标点击事件(左键、右键、中键)

    新建一个脚本buttonEvent:

    2024年02月01日
    浏览(52)
  • UI界面程序鼠标右键弹出菜单的一些事

    在做客户端UI程序时,鼠标右键弹出菜单这种操作非常常见,一般在鼠标右键按下或者鼠标右键抬起事件中响应操作,显示菜单即可,但是有时涉及到鼠标的移动,就是鼠标按下右键且移动时,则不需要弹出菜单,其它时候正常弹出。这种情况有很多种实现方式,但是操作体

    2024年02月03日
    浏览(36)
  • QT基础:event 函数重载、筛选鼠标按压事件、获取鼠标位置、右键显示菜单、修改鼠标样式功能演示

    这里演示的是QT基础,主要包含: event 函数重载、筛选鼠标按压事件、获取鼠标位置、右键显示菜单、修改鼠标样式等功能演示, 适合初学者食用 。 演示功能:点击鼠标左键、右键、中键、左右键同时点击,输出鼠标当前坐标;按下鼠标中键,鼠标样式被替换,按下鼠标左

    2024年02月09日
    浏览(43)
  • MacBook IDEA 使用蓝牙外接鼠标 点击右键无法呼出菜单(右键点击无反应)

    使用最新版的IDEA(IntelliJ IDEA 2022.1.2 (Ultimate Edition)),并使用蓝牙连接外置鼠标,IDEA右键无法呼出菜单。只能偶尔呼出一次。绝大部分时间无法呼出。此时包括笔记本的鼠标触控板也无法在IDEA中呼出菜单。但是在其他软件都可以正常呼出菜单。只有在IDEA中会出现这个问题。

    2024年02月11日
    浏览(53)
  • 【Qt图形视图框架】自定义QGraphicsItem和QGraphicsView,实现鼠标(移动、缩放)及键盘事件、右键事件

    说明 在使用Qt的图形视图框架实现功能时,一般会在其基础上进行自定义功能实现。 如:滚轮对场景的缩放,鼠标拖动场景中的项,以及可以在场景中进行右键操作等。 示例 myitem 为自定义QGraphicsItem,实现了边框、重绘事件、鼠标悬停、按键、右键菜单等功能。 myitem.h myi

    2024年02月04日
    浏览(48)
  • windows系统如何将 CMD(命令提示符)添加到鼠标右键菜单

    您可以通过以下步骤将 CMD(命令提示符)添加到鼠标右键菜单: 1. 打开注册表编辑器。按下 `Win + R` 组合键,然后键入 `regedit` 并按下 Enter 键。 2. 导航到注册表路径:`HKEY_CLASSES_ROOTDirectoryBackgroundshell`    这将打开一个名为 \\\"shell\\\" 的键。 3. 在 \\\"shell\\\" 键下,右键单击,选择

    2024年02月03日
    浏览(83)
  • electron自定义窗口和右键菜单样式

    electron默认沿用系统UI,并没有提供很多接口供使用者定制样式,如果想要完全自定义的样式,目前我能想到的方案只能是通过前端自定义样式,然后通过进程通信来实现系统基础功能:最大/小化、关闭、拖动窗口等。 通过前面系列文章我们可以了解到,窗口是通过实例化

    2024年02月02日
    浏览(71)
  • Windows如何自定义右键新建菜单栏

    右键新建菜单的实现原理 参考文章 修改 win10 右键“新建”菜单(原理、两种方法及注意事项)_goocheez的博客-CSDN博客_右键新建菜单 默认情况下,win10 会在用户 每次单击右键后 ,系统弹出“新建”菜单之前,从注册表 计算机HKEY_CLASSES_ROOT 中的各个后缀中提取 ShellNew 分支,

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

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

    2024年02月07日
    浏览(50)
  • JavaScript 监听鼠标左右同时按下/同时按下移动

    基于原生JavaScript, 在使用 three.js 的 raycaster 模拟瞄准及射击时用到.

    2024年02月07日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包