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 相关文章推荐
javascript对下拉列表框(select)的操作实例讲解
Nov 29 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
Mar 12 Javascript
jQuery的Scrollify插件实现滑动到页面下一节点
Jul 05 Javascript
jQuery实现选中弹出窗口选择框内容后赋值给文本框的方法
Nov 23 Javascript
深入理解Java线程编程中的阻塞队列容器
Dec 07 Javascript
javascript实现简单的全选和反选功能
Jan 05 Javascript
js发送短信倒计时的简单实现方法
Sep 08 Javascript
JS树形菜单组件Bootstrap TreeView使用方法详解
Dec 21 Javascript
详解PHP中pathinfo()函数导致的安全问题
Jan 05 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
Mar 06 Javascript
scrapyd schedule.json setting 传入多个值问题
Aug 07 Javascript
vue flex 布局实现div均分自动换行的示例代码
Aug 05 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
德生BCL3000的电路分析和打磨
2021/03/02 无线电
用libtemplate实现静态网页生成
2006/10/09 PHP
php 模拟POST|GET操作实现代码
2010/07/20 PHP
PHP函数func_num_args用法实例分析
2015/12/07 PHP
php 使用html5实现多文件上传实例
2016/10/24 PHP
php实现的简单中文验证码功能示例
2017/01/03 PHP
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
javascript动态添加表格数据行(ASP后台数据库保存例子)
2010/05/08 Javascript
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
jQuery 开发者应该注意的9个错误
2012/05/03 Javascript
js二级地域选择的实现方法
2013/06/17 Javascript
jquery动态添加删除div 具体实现
2013/07/20 Javascript
js二维数组定义和初始化的三种方法总结
2014/03/03 Javascript
JS版的date函数(和PHP的date函数一样)
2014/05/12 Javascript
javascript实现获取浏览器版本、操作系统类型
2015/01/29 Javascript
JS实现的自定义显示加载等待图片插件(loading.gif)
2016/06/17 Javascript
用NodeJS实现批量查询地理位置的经纬度接口
2016/08/16 NodeJs
原生js实现可拖拽效果
2017/02/28 Javascript
微信小程序 flex实现导航实例详解
2017/04/26 Javascript
基于jQuery的左滑出现删除按钮的示例
2017/08/29 jQuery
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
2020/02/04 jQuery
纯js+css实现在线时钟
2020/08/18 Javascript
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
[49:11]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.20
2020/12/23 DOTA
在Python中调用ggplot的三种方法
2015/04/08 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
2019/12/27 Python
Python使用sqlite3模块内置数据库
2020/05/07 Python
关于keras中keras.layers.merge的用法说明
2020/05/23 Python
基于Python爬取51cto博客页面信息过程解析
2020/08/25 Python
草莓网化妆品澳大利亚站:Strawberrynet AU
2017/12/18 全球购物
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
高中自我鉴定范文
2013/11/03 职场文书
道德之星事迹材料
2014/05/03 职场文书
民主生活会对照检查材料(统计局)
2014/09/21 职场文书
pytorch实现线性回归以及多元回归
2021/04/11 Python
高考要来啦!用Python爬取历年高考数据并分析
2021/06/03 Python