js实现自定义右键菜单


Posted in Javascript onMay 18, 2020

本文实例为大家分享了js实现右键菜单的具体代码,供大家参考,具体内容如下

原理:

1.屏蔽默认的右键菜单

2.点击右键获取位置,让自定义菜单到点击位置上

3.点击左键,自定义菜单消失

代码如下

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>右键菜单练习</title>
 <style>
 *{
  margin: 0;
  /*padding: 0;*/
 }
 ul{
  width: 120px;
  height: 150px;
  background-color: rgb(204,204,204);
  font-size: 22px;
  list-style: none;
  line-height: 50px;
  position: fixed;
  display: none;
 }
 li{
  background-color: rgb(238,238,238);
  padding-left: 15px;
 }
 </style>
</head>
<body>
<ul id="ul">
 <li>复制</li>
 <li>剪切</li>
 <li>粘贴</li>
</ul>
<script>
 //给document 添加 oncontextmenu 事件 取消默认的右键菜单的行为。
 //点击右键的时候,获得点击的位置。
 var ul = document.getElementById('ul');
 document.oncontextmenu=function(e){
 e=e||window.event;
 //屏蔽样式
 e.preventDefault?e.preventDefault():(e.returnValue=false);
 //获取坐标
 var x=e.clientX;//视口的位置
 var y=e.clientY;

 //显示菜单
 ul.style.display='block';
 ul.style.top=y+'px';
 ul.style.left=x+'px';
 };
 //点击左键 自定义菜单消失
 document.onclick=function () {
 ul.style.display='none';
 };
 //给每个li添加 鼠标进入(onmouseover)和鼠标离开(onmouseout)的事件
 var lis = document.querySelectorAll('li');
 for (let i = 0; i < lis.length; i++) {
 lis[i].onmouseover=function () {
  lis[i].style.backgroundColor='rgb(204,204,204)';
 };
 lis[i].onmouseout=function () {
  lis[i].style.backgroundColor='rgb(238,238,238)';
 }
 }

</script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于JQuery的模拟苹果桌面Dock效果(稳定版)
Oct 15 Javascript
javascript自启动函数的问题探讨
Oct 05 Javascript
Java/JS获取flash高宽的具体方法
Dec 27 Javascript
javascript运算符——位运算符全面介绍
Jul 14 Javascript
Angular2 PrimeNG分页模块学习
Jan 14 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
Feb 22 Javascript
微信小程序实现文字跑马灯
May 26 Javascript
vue+element实现表单校验功能
May 20 Javascript
JavaScript动态检测密码强度原理及实现方法详解
Jun 11 Javascript
微信小程序模板消息推送的两种实现方式
Aug 27 Javascript
小程序卡片切换效果组件wxCardSwiper的实现
Feb 13 Javascript
在vue中import()语法不能传入变量的问题及解决
Apr 01 Vue.js
微信小程序手动添加收货地址省市区联动
May 18 #Javascript
怎么理解wx.navigateTo的events参数使用详情
May 18 #Javascript
django简单的前后端分离的数据传输实例 axios
May 18 #Javascript
vue+koa2搭建mock数据环境的详细教程
May 18 #Javascript
Vue 基于 vuedraggable 实现选中、拖拽、排序效果
May 18 #Javascript
react 生命周期实例分析
May 18 #Javascript
react使用CSS实现react动画功能示例
May 18 #Javascript
You might like
PHP用mb_string函数库处理与windows相关中文字符及Win环境下开启PHP Mb_String方法
2015/11/11 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
2020/10/27 PHP
IE 下的只读 innerHTML
2009/08/21 Javascript
JavaScript类和继承 prototype属性
2010/09/03 Javascript
JQuery EasyUI 对话框的使用方法
2010/10/24 Javascript
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
关于jquery css的使用介绍
2013/04/18 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
javascipt匹配单行和多行注释的正则表达式
2013/11/20 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
2014/12/16 Javascript
JQuery实现鼠标移动图片显示描述层的方法
2015/06/25 Javascript
bootstrap组件之按钮式下拉菜单小结
2017/01/19 Javascript
JS实现直接运行html代码的方法
2017/03/13 Javascript
Node.js  事件循环详解及实例
2017/08/06 Javascript
详解Vue中localstorage和sessionstorage的使用
2017/12/22 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
分享vue里swiper的一些坑
2018/08/30 Javascript
微信小程序之裁剪图片成圆形的实现代码
2018/10/11 Javascript
TypeScript基础入门教程之三重斜线指令详解
2018/10/22 Javascript
微信小程序修改数组长度的问题的解决
2019/12/17 Javascript
[03:39]2015国际邀请赛主赛事首日精彩回顾
2015/08/05 DOTA
以Python的Pyspider为例剖析搜索引擎的网络爬虫实现方法
2015/03/30 Python
python正则表达式及使用正则表达式的例子
2018/01/22 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
Python实现常见的回文字符串算法
2018/11/14 Python
Django框架视图介绍与使用详解
2019/07/18 Python
python链表类中获取元素实例方法
2021/02/23 Python
解释一下Windows的消息机制
2014/01/30 面试题
结婚典礼证婚词
2014/01/08 职场文书
初中家长评语和期望
2014/12/26 职场文书
python操作xlsx格式文件并读取
2021/06/02 Python
Opencv中cv2.floodFill算法的使用
2021/06/18 Python
Python卷积神经网络图片分类框架详解分析
2021/11/07 Python