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实现类似淘宝星星评分功能有截图
Sep 15 Javascript
jQuery实现统计复选框选中数量
Nov 24 Javascript
jQuery+ajax中getJSON() 用法实例
Dec 22 Javascript
JS实现同一个网页布局滑动门和TAB选项卡实例
Sep 23 Javascript
jQuery+ajax+asp.net获取Json值的方法
Jun 08 Javascript
微信小程序遇到修改数据后页面不渲染的问题解决
Mar 09 Javascript
Vuex之理解Getters的用法实例
Apr 19 Javascript
详解如何将angular-ui的图片轮播组件封装成一个指令
May 09 Javascript
详解Node使用Puppeteer完成一次复杂的爬虫
Apr 18 Javascript
Node.js模块全局安装路径配置方法
May 17 Javascript
js canvas实现画图、滤镜效果
Nov 27 Javascript
详解Vue 数据更新了但页面没有更新的 7 种情况汇总及延伸总结
May 28 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生成SessionID和图片校验码的思路和实现代码
2009/03/10 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
2010/06/25 Javascript
javascript与cookie 的问题详解
2013/11/11 Javascript
用unescape反编码得出汉字示例
2014/04/24 Javascript
运行Node.js的IIS扩展iisnode安装配置笔记
2015/03/02 Javascript
更高效的使用JQuery 这里总结了8个小技巧
2016/04/13 Javascript
前端js弹出框组件使用方法
2020/08/24 Javascript
如何解决jQuery EasyUI 已打开Tab重新加载问题
2016/12/19 Javascript
Node连接mysql数据库方法介绍
2017/02/07 Javascript
Vue服务器渲染Nuxt学习笔记
2018/01/31 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
2019/03/04 Javascript
详解Vue中使用插槽(slot)、聚类插槽
2019/04/12 Javascript
vue中引入mxGraph的步骤详解
2019/05/17 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
2019/07/17 Javascript
微信小程序分包加载代码实现方法详解
2019/09/23 Javascript
jQuery实现简单三级联动效果
2020/09/05 jQuery
[01:48]2018DOTA2亚洲邀请赛主赛事第二日五佳镜头 VG完美团战逆转TNC
2018/04/05 DOTA
python算法学习之计数排序实例
2013/12/18 Python
Python对小数进行除法运算的正确方法示例
2014/08/25 Python
Python遍历pandas数据方法总结
2018/02/09 Python
Python即时网络爬虫项目启动说明详解
2018/02/23 Python
深入浅析python with语句简介
2018/04/11 Python
django修改models重建数据库的操作
2020/03/31 Python
Python如何爬取b站热门视频并导入Excel
2020/08/10 Python
python 偷懒技巧——使用 keyboard 录制键盘事件
2020/09/21 Python
Matplotlib配色之Colormap详解
2021/01/05 Python
目前不被任何主流浏览器支持的CSS3属性汇总
2014/07/21 HTML / CSS
CSS3实现复选框动画特效示例代码
2016/09/27 HTML / CSS
浅析HTML5中的download属性使用
2019/03/13 HTML / CSS
国旗下演讲稿
2014/05/08 职场文书
2015年招商引资工作总结
2015/04/25 职场文书
Python游戏开发实例之graphics实现AI五子棋
2021/11/01 Python
vue 数字翻牌器动态加载数据
2022/04/20 Vue.js