文章目录

  • javascript实现自定义右键菜单
    • 思路
      • 1绑定右键函数
      • 2.获取鼠标右键按下位置的x坐标(到左面的距离),y坐标(到上面的距离)。
      • 3.获取滚动条向下滚动距离,获取滚动条向左滚动距离
      • 4.最后+'px',补全单位,添加到元素style属性里。
      • 5.完整代码:
      • 6.注意点
  • 扩展:绑定左键

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';//添加到stylebutton1.style.left=x+scrollleft+'px';//添加到stylereturn 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>

如果我对你有帮助,请留下一个赞鼓励我一下吧

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

  1. java 左右键_js 区分鼠标左右键点击

    oncontextmenu  是右键事件 但是滚轮事件并没有获取到, 使用vue可以用middle获取 Title .box { width: 200px; height: 200px; backgr ...

  2. 网站禁用鼠标右键php代码,JavaScript_网页禁用右键菜单和鼠标拖动选择方法小结,一、禁止鼠标右键菜单:- phpStudy...

    网页禁用右键菜单和鼠标拖动选择方法小结 一.禁止鼠标右键菜单: 有如下两种方法来禁止鼠标右键 1.在HTML元素的Body标签中加入Javascript事件句柄,代码如下: 说明:您也可以在网页指定的 ...

  3. php左键点改成左键点,window_win10怎么将鼠标左键设置为主键?win10鼠标左右键互换的技巧,当我们的鼠标使用一段时间之 - phpStudy...

    win10怎么将鼠标左键设置为主键?win10鼠标左右键互换的技巧 当我们的鼠标使用一段时间之后,会由于左键经常按压而导致老化或者损坏,而对于突然间的损坏,又没有其他可以替代的鼠标时候,就需要对鼠标左 ...

  4. 转载:注册表修改--鼠标左右键菜单篇

    注册表修改--鼠标左右键菜单篇 加Apploc到右键中去: [HKEY_CLASSES_ROOT\exefile\shell\Apploc\command] 再修改其中的默认值为C:\windows\ ...

  5. iMouse - 快速切换鼠标左右键

    (此Blog是iMouse软件的官网) [名称]:iMouse [版本]:v1.2 (v1.2是首个公开发布版本,也是最新版,之前版本没有对外发布) [时间]:2012-01-06 [关键词]:腱鞘炎 ...

  6. linux下模仿用户左键,linux 鼠标左右键互换实现代码

    linux鼠标左右键互换脚本,作者今天, 使用 GNOME, 发现 Linux 也需要这些工具之一, 所以有了这个脚本.非常简单好用. lr="l" for id in `xinp ...

  7. 用C#实现鼠标左右键的切换

    转载地址:http://www.51test.net/show.asp?id=283640&Page=1#top 1. SwapMouseButton 根据MSDN所述,可以通过调用SwapM ...

  8. 戴记严选GM3323D 鼠标左右键失效 解决办法

    戴记严选 GM3323D 鼠标左右键失效原因分析 GM3323D软件下载 当你下载了驱动了并且使用2.4G连接鼠标时,当你修改RGB设置有几率导致左右键失效 请尝试用触摸板或者其他鼠标 重新点击修改R ...

  9. C#Winform中DataGridView控件根据鼠标左右键获取单元格值或者行列

    有多种方法可以获取单元格的值或者行列,此处选用了两种方式去获取分别用了CurrentCell方法和Rows[].Cells[]的方法去获取行列值 鼠标左键获取单独行列值 此处获取左键行列值的触发条件是 ...

最新文章

  1. Android注解使用之Dagger2实现项目依赖关系解耦
  2. JAVA基础知识系列---进程、线程安全
  3. hdu3652(数位dp)
  4. JS 查看标签下某元素所有信息(查看元素,查询元素,遍历元素、HTMLCollection对象、NodeList对象)
  5. 耗时1年的前端技术框架切换之旅
  6. 避坑!用大数据告诉你,那些被淘汰的公司,都有哪些特征?
  7. 1024. 科学计数法 (20)-PAT乙级真题
  8. Tensorflow2.0数据和部署(一)——基于浏览器的模型与TensorFlow.js
  9. 升级Linux下的sudo
  10. 使用Xcode、Android Studio将项目链接到Git
  11. 一文看尽Facebook 3D视觉技术研究进展
  12. 舒尔特表-5*5表格1-25个数字随机生成且不重复
  13. Win10华硕atk驱动怎么安装_【打印机安装】WIN10打印机【驱动下载】和【安装方法】...
  14. DES加密,前端示例,Java示例,在线测试
  15. anaconda conda环境管理命令
  16. kylin build过程详解
  17. solidworks批量图号分离_SolidWorks2014基于宏实现快速图号名称分离.docx
  18. 网上书城项目的需求分析、数据库表设计及前端界面的编写(项目进度一)
  19. 这些绿色也太好看了吧,这才是真正的高端审美
  20. NLU(Natural Language Understanding)太难了

热门文章

  1. android怎么实现文字制作,如何在Android中制作传统的蒙古文字TextView
  2. Python编写一个程序求2的次方
  3. C语言心算程序设计抽奖程序,幼儿园大班数学优质课:抽奖游戏
  4. MT4错误代码最完整汇总
  5. c语言100的阶乘如何编译,100的阶乘有关问题
  6. 机器视觉中的视觉引导定位系统_机器视觉在工业中的应用
  7. java 打印水仙花数(通俗易懂)
  8. 接口调用-【4】讯飞离线语音合成Windows/Linux
  9. virtio-gpu
  10. 获取电脑cpu,硬盘,网卡序列号