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 相关文章推荐
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
Nov 03 Javascript
javascript firefox不显示本地预览图片问题的解决方法
Nov 12 Javascript
js 编程笔记 无名函数
Jun 28 Javascript
鼠标移动到图片名上,显示图片的简单实例
Jul 14 Javascript
JS实现批量上传文件并显示进度功能
Jun 27 Javascript
JavaScript实现的浏览器下载文件的方法
Aug 09 Javascript
基于mpvue小程序使用echarts画折线图的方法示例
Apr 24 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
May 05 Javascript
浅谈Express.js解析Post数据类型的正确姿势
May 30 Javascript
nuxt+axios实现打包后动态修改请求地址的方法
Apr 22 Javascript
小程序自定义导航栏兼容适配所有机型(附完整案例)
Apr 26 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
Aug 25 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 操作符与控制结构
2012/03/07 PHP
php抽奖小程序的实现代码
2013/06/18 PHP
PHP实现导出excel数据的类库用法示例
2016/10/15 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
Thinkphp 框架扩展之Widget扩展实现方法分析
2020/04/23 PHP
jQuery 渐变下拉菜单
2009/12/15 Javascript
基于jquery.Jcrop的头像编辑器
2010/03/01 Javascript
javascript开发中因空格引发的错误
2010/11/08 Javascript
『jQuery』.html(),.text()和.val()的概述及使用
2013/04/22 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
AJAX跨域请求json数据的实现方法
2013/11/11 Javascript
javascript客户端遍历控件与获取父容器对象示例代码
2014/01/06 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
手机平板等移动端适配跳转URL的js代码
2014/01/25 Javascript
jQuery中ajax的get()方法用法实例
2014/12/26 Javascript
JQuery实现超链接鼠标提示效果的方法
2015/06/10 Javascript
javascript实现tab切换的两个实例
2015/11/05 Javascript
Node.js Express安装与使用教程
2018/05/11 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
2019/08/17 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
vue如何在项目中调用腾讯云的滑动验证码
2020/07/15 Javascript
让python的Cookie.py模块支持冒号做key的方法
2010/12/28 Python
Python性能优化的20条建议
2014/10/25 Python
Python数据可视化正态分布简单分析及实现代码
2017/12/04 Python
python网络爬虫学习笔记(1)
2018/04/09 Python
Python中顺序表原理与实现方法详解
2019/12/03 Python
django formset实现数据表的批量操作的示例代码
2019/12/06 Python
Python中私有属性的定义方式
2020/03/05 Python
Foreo国际站:Foreo International
2018/10/29 全球购物
幼儿园家长会欢迎词
2014/01/09 职场文书
学校教研活动总结
2014/07/02 职场文书
开展党的群众路线教育实践活动总结报告
2014/10/31 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书
深入理解Pytorch微调torchvision模型
2021/11/11 Python
利用For循环遍历Python字典的三种方法实例
2022/03/25 Python