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在IE和Firefox浏览器下的7个差异兼容写法小结
Jun 18 Javascript
JavaScript对象链式操作代码(jquery)
Jul 04 Javascript
jquery购物车实时结算特效实现思路
Sep 23 Javascript
用jquery.sortElements实现table排序
May 04 Javascript
七个很有意思的PHP函数
May 12 Javascript
js过滤HTML标签完整实例
Nov 26 Javascript
高性能JavaScript循环语句和条件语句
Jan 20 Javascript
javascript数组去重小结
Mar 07 Javascript
JavaScript中数组常见操作技巧
Sep 01 Javascript
纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)
Oct 25 Javascript
JS处理一些简单计算题
Feb 24 Javascript
vue使用echarts图表自适应的几种解决方案
Dec 04 Vue.js
页面间固定参数,通过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数据类型之布尔型的介绍
2013/04/28 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
2014/01/07 PHP
ThinkPHP分页实例
2014/10/15 PHP
9个比较实用的php代码片段
2016/03/15 PHP
PHP strcmp()和strcasecmp()的区别实例
2016/11/05 PHP
PHP处理bmp格式图片的方法分析
2017/07/04 PHP
利用PHP计算有多少小于当前数字的数字方法示例
2020/08/26 PHP
广告显示判断
2006/08/31 Javascript
javascript 读取xml,写入xml 实现代码
2009/07/10 Javascript
Jquery Validation插件防止重复提交表单的解决方法
2010/03/05 Javascript
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
密码框显示提示文字jquery示例
2013/08/29 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
异步JavaScript编程中的Promise使用方法
2015/07/28 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
基于BootStrap的文本编辑器组件Summernote
2017/10/27 Javascript
解析Vue 2.5的Diff算法
2017/11/28 Javascript
JS基于封装函数实现的表格分页完整示例
2018/06/26 Javascript
解决vue项目打包后提示图片文件路径错误的问题
2018/07/04 Javascript
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
在vue项目中引用Iview的方法
2018/09/14 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
Openlayers学习之加载鹰眼控件
2020/09/28 Javascript
python 布尔操作实现代码
2013/03/23 Python
Python中实现变量赋值传递时的引用和拷贝方法
2018/04/29 Python
python 创建一个空dataframe 然后添加行数据的实例
2018/06/07 Python
Python面向对象之接口、抽象类与多态详解
2018/08/27 Python
python 下 CMake 安装配置 OPENCV 4.1.1的方法
2019/09/30 Python
windows上彻底删除jupyter notebook的实现
2020/04/13 Python
Python 串口通信的实现
2020/09/29 Python
授权委托书(完整版)
2014/09/10 职场文书
2014年基层党支部工作总结
2014/12/04 职场文书
校园之声广播稿
2015/08/18 职场文书
jQuery实现广告显示和隐藏动画
2021/07/04 jQuery
四十九个javascript小知识实用技巧
2021/11/20 Javascript