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 相关文章推荐
解析offsetHeight,clientHeight,scrollHeight之间的区别
Nov 20 Javascript
jQuery验证插件validation使用指南
Apr 21 Javascript
第一次接触神奇的Bootstrap网格系统
Jul 27 Javascript
jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件】
Mar 15 Javascript
Vue.js实现一个todo-list的上移下移删除功能
Jun 26 Javascript
使用OPENLAYERS3实现点选的方法
Sep 24 Javascript
基于JavaScript实现飘落星星特效
Aug 10 Javascript
Router解决跨模块下的页面跳转示例
Jan 11 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
Mar 01 Javascript
详解Webpack + ES6 最新环境搭建与配置
Jun 04 Javascript
深入理解Vue router的部分高级用法
Aug 15 Javascript
JS中的防抖与节流及作用详解
Apr 01 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
mysql5写入和读出乱码解决
2006/11/25 PHP
php 字符串替换的方法
2012/01/10 PHP
php接口实现拖拽排序功能
2018/04/23 PHP
jQuery中contents()方法用法实例
2015/01/08 Javascript
JS控制按钮10秒钟后可用的方法
2015/12/22 Javascript
详解JavaScript中数组和字符串的lastIndexOf()方法使用
2016/03/13 Javascript
JS操作COOKIE实现备忘记录的方法
2016/04/01 Javascript
JS仿hao123导航页面图片轮播效果
2016/09/01 Javascript
原生JS实现简单放大镜效果
2017/02/08 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
浅谈js中function的参数默认值
2017/02/20 Javascript
JavaScript实现开关等效果
2017/09/08 Javascript
clipboard.js在移动端复制失败的解决方法
2018/06/13 Javascript
微信小程序websocket实现聊天功能
2020/03/30 Javascript
ztree加载完成后显示勾选节点的实现代码
2018/10/22 Javascript
jquery实现直播视频弹幕效果
2020/02/25 jQuery
如何利用nodejs自动定时发送邮件提醒(超实用)
2020/12/01 NodeJs
11个Javascript小技巧帮你提升代码质量(小结)
2020/12/28 Javascript
JavaScript实现筛选数组
2021/03/02 Javascript
python处理cookie详解
2014/02/07 Python
Pandas探索之高性能函数eval和query解析
2017/10/28 Python
Python3几个常见问题的处理方法
2019/02/26 Python
python操作文件的参数整理
2019/06/11 Python
Python pandas实现excel工作表合并功能详解
2019/08/29 Python
使用Python操作MySQL的小技巧
2020/09/10 Python
Python猫眼电影最近上映的电影票房信息
2020/09/18 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
瑞典最大的儿童用品网上商店:pinkorblue.se
2021/03/09 全球购物
综合办公室个人的自我评价
2013/12/22 职场文书
中学教师教育感言
2014/02/21 职场文书
党的群众路线教育实践活动个人对照检查材料范文
2014/09/25 职场文书
初中教师个人总结
2015/02/10 职场文书
穷人该怎么创业?谨记以下几点
2019/07/11 职场文书
CSS中Single Div 绘图技巧的实现
2021/06/18 HTML / CSS
如何利用golang运用mysql数据库
2022/03/13 Golang