JS简单实现自定义右键菜单实例


Posted in Javascript onMay 31, 2017

RT,一个简单的例子,仅仅讲述原理

 

<div id="menu" style="width: 0;height: 0;background: cadetblue;position: absolute"></menu>

假设我要把上面这个div设置为右键菜单,先随意美化一下。

原理就是利用contextmenu事件,右键点击时,会触发这个事件时,该事件对象可以获得鼠标距离页面左上角的距离clientX和clientY,

我们可以利用这两个属性,来控制div的水平,垂直偏移量,并且返回false,取消事件的默认行为,来模拟浏览器的右键菜单。

document.oncontextmenu=function(e){

var x=e.clientX+'px';


var y=e.clientY+'px';


var node=document.querySelector('#menu');


node.style.left=x;


node.style.top=y;


node.style.width=100+'px';


node.style.height=100+'px';


return false; //很重要,不能让浏览器显示自己的右键菜单

}

现在是关闭部分,关闭右键菜单的方式,通常是在空白区域点击左键。

document.onclick=function(e){

if(e.target.id!='menu')


{



var node=document.querySelector('#menu');



node.style.width=0;



node.style.height=0;


}
}

这仅仅是一个基本的思路的,核心就是contextmenu事件。你可以在此基础上使用CSS随意美化升级,加入类似于transition等属性,来实现动画效果。

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

Javascript 相关文章推荐
js 实现复制到粘贴板的功能代码
May 13 Javascript
javascript textContent与innerText的异同分析
Oct 22 Javascript
Javascript中Date类型和Math类型详解
Feb 27 Javascript
怎样判断jQuery当前元素是隐藏还是显示
Nov 23 Javascript
JS中from 表单序列化提交的代码
Jan 20 Javascript
JScript实现表格的简单操作
Aug 15 Javascript
详解用Node.js实现Restful风格webservice
Sep 29 Javascript
webpack打包react项目的实现方法
Jun 21 Javascript
vue使用Google地图的实现示例代码
Dec 19 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
Aug 07 Javascript
vue导航栏部分的动态渲染实例
Nov 01 Javascript
vue-quill-editor 自定义工具栏和自定义图片上传路径操作
Aug 03 Javascript
页面间固定参数,通过cookie传值的实现方法
May 31 #Javascript
基于react框架使用的一些细节要点的思考
May 31 #Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
May 31 #Javascript
使用原生js写ajax实例(推荐)
May 31 #Javascript
Javascript创建类和对象详解
May 31 #Javascript
Javascript继承机制详解
May 30 #Javascript
Vue2.x中的Render函数详解
May 30 #Javascript
You might like
php 生成WML页面方法详解
2009/08/09 PHP
php学习笔记 PHP面向对象的程序设计
2011/06/13 PHP
php实现网站文件批量压缩下载功能
2015/10/28 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
2015/11/15 PHP
PHP实现的自定义数组排序函数与排序类示例
2016/11/18 PHP
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
2011/01/06 Javascript
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
jquery解决图片路径不存在执行替换路径
2013/02/06 Javascript
用jQuery实现一些导航条切换,显示隐藏的实例代码
2013/06/08 Javascript
基于pthread_create,readlink,getpid等函数的学习与总结
2013/07/17 Javascript
jquery改变disabled的boolean状态的三种方法
2013/12/13 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
2015/12/01 Javascript
JS实现的适合做faq或menu滑动效果示例
2016/11/17 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
AngularJS执行流程详解
2017/02/17 Javascript
select自定义小三角样式代码(实用总结)
2017/08/18 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
使用JavaScript保存文本文件到本地的两种方法
2019/01/22 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
2019/11/07 Javascript
Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)
2020/04/27 Javascript
python实现DNS正向查询、反向查询的例子
2014/04/25 Python
python获取当前日期和时间的方法
2015/04/30 Python
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
2015/08/10 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
2019/06/18 Python
Django应用程序入口WSGIHandler源码解析
2019/08/05 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
2019/12/05 Python
Python3监控疫情的完整代码
2020/02/20 Python
jupyter notebook 添加kernel permission denied的操作
2020/04/21 Python
Python多线程threading创建及使用方法解析
2020/06/17 Python
使用CSS3来匹配横屏竖屏的简单方法
2015/08/04 HTML / CSS
英国网上电器商店:Electricshop
2020/03/15 全球购物
八荣八耻演讲稿
2014/09/15 职场文书
Python机器学习算法之决策树算法的实现与优缺点
2021/05/13 Python
python用tkinter开发的扫雷游戏
2021/06/01 Python
Selenium浏览器自动化如何上传文件
2022/04/06 Python