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 相关文章推荐
ext 列表页面关于多行查询的办法
Mar 25 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
Mar 08 Javascript
JavaScript及jquey实现多个数组的合并操作
Sep 06 Javascript
JavaScript数组随机排列实现随机洗牌功能
Mar 19 Javascript
javascript控制台详解
Jun 25 Javascript
详解JavaScript函数
Dec 01 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
Jun 03 Javascript
bootstrap警告框示例代码分享
May 17 Javascript
各种选择框jQuery的选中方法(实例讲解)
Jun 27 jQuery
javascript中的隐式调用
Feb 10 Javascript
微信小程序实现倒计时调用相机自动拍照功能
Jun 10 Javascript
使用vue-infinite-scroll实现无限滚动效果
Jun 22 Javascript
微信小程序手动添加收货地址省市区联动
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+javascript液晶时钟
2006/10/09 PHP
详解PHP中的 input属性(隐藏 只读 限制)
2017/08/14 PHP
php生成静态页面并实现预览功能
2019/06/27 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
js表格分页实现代码
2009/09/18 Javascript
Javascript 中文字符串处理额外注意事项
2009/11/15 Javascript
基于jquery的图片的切换(以数字的形式)
2011/02/14 Javascript
Prototype源码浅析 Enumerable部分(二)
2012/01/18 Javascript
用js代码改变单选框选中状态的简单实例
2013/12/18 Javascript
asp.net+js实现金额格式化
2015/02/27 Javascript
nodejs中实现sleep功能实例
2015/03/24 NodeJs
javascript多行字符串的简单实现方式
2015/05/04 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
2015/09/21 Javascript
基于JS实现EOS隐藏错误提示层代码
2016/04/25 Javascript
jQuery的promise与deferred对象在异步回调中的作用
2016/05/03 Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
2016/09/21 Javascript
JAVA Web实时消息后台服务器推送技术---GoEasy
2016/11/04 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
Angular ui.bootstrap.pagination分页
2017/01/20 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
2017/02/27 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
2017/09/13 Javascript
ES6中数组array新增方法实例总结
2017/11/07 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
JavaScript中的执行环境和作用域链
2020/09/04 Javascript
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
约瑟夫问题的Python和C++求解方法
2015/08/20 Python
python fabric实现远程部署
2017/01/05 Python
Python实现删除某列中含有空值的行的示例代码
2020/07/20 Python
自行车租赁公司创业计划书
2014/01/28 职场文书
乡镇三项教育实施方案
2014/03/30 职场文书
美食节策划方案
2014/05/26 职场文书
校园学雷锋广播稿
2014/10/08 职场文书
刑事辩护授权委托书范本
2014/10/17 职场文书
迎新生欢迎词
2015/01/23 职场文书
React更新渲染原理深入分析
2022/12/24 Javascript