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 相关文章推荐
JavaScript全排列的六种算法 具体实现
Jun 29 Javascript
JS画5角星方法介绍
Sep 17 Javascript
通过$(this)使用jQuery包装后的方法或属性
May 18 Javascript
jquery中attr和prop的区别分析
Mar 16 Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
Jul 27 Javascript
js实现基于正则表达式的轻量提示插件
Aug 29 Javascript
AngularJS入门教程之XHR和依赖注入详解
Aug 18 Javascript
vue.js实现请求数据的方法示例
Feb 07 Javascript
JavaScript注册时密码强度校验代码
Jun 30 Javascript
关于express与koa的使用对比详解
Jan 25 Javascript
babel之配置文件.babelrc入门详解
Feb 22 Javascript
JavaScript代码实现txt文件的上传预览功能
Mar 27 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压缩多个CSS为一个css的代码并缓存
2011/04/21 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
2017/03/24 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
php+js实现的无刷新下载文件功能示例
2019/08/23 PHP
php并发加锁问题分析与设计代码实例讲解
2021/02/26 PHP
JavaScript 闭包深入理解(closure)
2009/05/27 Javascript
为调试JavaScript添加输出窗口的代码
2010/02/07 Javascript
this和执行上下文实现代码
2010/07/01 Javascript
js实现多选项切换导航菜单的方法
2015/02/06 Javascript
js数组去重的hash方法
2016/12/22 Javascript
vue 实现全选全不选的示例代码
2018/03/29 Javascript
node实现基于token的身份验证
2018/04/09 Javascript
Canvas实现微信红包照片效果
2018/08/21 Javascript
jQuery中DOM常见操作实例小结
2019/08/01 jQuery
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
2020/08/04 Javascript
JavaScript setTimeout()基本用法有哪些
2020/11/04 Javascript
[26:24]完美副总裁、DOTA2负责人蔡玮专访:电竞如人生
2014/09/11 DOTA
Python3编程实现获取阿里云ECS实例及监控的方法
2017/08/18 Python
Python工厂函数用法实例分析
2018/05/14 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
python实现高斯投影正反算方式
2020/01/17 Python
你正在寻找的CSS3 动画技术
2011/07/27 HTML / CSS
ASP.NET中的身份验证有那些
2012/07/13 面试题
早读迟到检讨书
2014/01/24 职场文书
致铅球运动员加油稿
2014/02/13 职场文书
廉洁自律承诺书
2014/03/27 职场文书
小学生操行评语
2014/04/22 职场文书
初中新生军训方案
2014/05/13 职场文书
党员自我对照检查材料
2014/08/19 职场文书
关于运动会的广播稿(10篇)
2014/09/12 职场文书
2015圣诞节贺卡寄语
2015/03/24 职场文书
2015年员工试用期工作总结
2015/05/28 职场文书
校园歌手大赛主持词
2015/07/03 职场文书
范文之农村基层党建工作报告
2019/10/24 职场文书
win11无法登录onedrive错误代码0x8004def7怎么办 ?
2022/04/05 数码科技