JGUI源码:右键菜单实现(12)
1、要想实现右键菜单,就要先能响应右键函数
$('#down').mousedown(function(e){
if(3 == e.which){
alert('这是右键单击事件');
}else if(1 == e.which){
alert('这是左键单击事件');
}
})
2、通过上面方法,虽然弹出了右键菜单,但是浏览器系统菜单也会出现。
$('#down')[0].oncontextmenu = function ()
{
return false;
}
3、如果单纯右键函数可以直接用第二种写法
$('#context').contextmenu(function ()
{
alert('这是右键菜单事件');
return false;
});
4、如果再定义一个div层,在contextmenu把div层显示出来即形成一个菜单
通常情况下,会使用ul,ol,dl实现,dl有前后级关系,但是大部分情况下都定义了,padding:0;margin:0会导致自动层级关系失效,所以使用ul,li实现。
5、定义div
<div class="jgui-menu">
<ul>
<li class="jgui-menuitem">关闭当前标签</li>
<li class="jgui-menuitem">关闭其它标签</li>
<li class="jgui-menuitem">关闭左侧标签</li>
<li class="jgui-menuitem">关闭右侧标签</li>
</ul>
</div>
样式如下
.jgui-menu
{
position:absolute;
text-align: left;
font-size: 16px;
min-width: 180px;
list-style: none;
border-width: 1px;
border-color: #cccccc;
box-shadow: 0 1px 4px rgba(0,0,0,.3);
border-style: solid;
box-sizing: border-box;
}
.jgui-menu .jgui-menuitem {
padding: 10px;
padding-left: 20px;
color: #222222;
}
.jgui-menu .jgui-menuitem:hover {
background-color : #22B581;
color: white;
}
显示效果
6、右键单击时弹出这个菜单,点击任意区域关闭
<div id="menuclicktest" >4、点我弹出菜单</div>
<div class="jgui-menu" id="testmenu">
<ul>
<li class="jgui-menuitem" onclick="alert('a');">关闭当前标签</li>
<li class="jgui-menuitem">关闭其它标签</li>
<li class="jgui-menuitem">关闭左侧标签</li>
<li class="jgui-menuitem">关闭右侧标签</li>
</ul>
</div>
$('#menuclicktest').contextmenu(function ()
{
$('#testmenu').css("visibility","visible");
//$('#testmenu').slideDown();//如果用这个需要设置display:none
return false;
});
$(document).click(function()
{
$('.jgui-menu').css("visibility","hidden");
});
如此基本就完成了。这个菜单是上下文菜单,固定于某个dom元素下方显示,如果全局右键菜单,则要判断当前鼠标位置,另外屏幕左右上下显示时还要考虑不遮挡,以后再优化。
最终给Tab增加menu效果如下

演示地址:
JGUI源码:右键菜单实现(12)的更多相关文章
- JGUI源码:从头开始,建一个自己的UI框架(1)
开篇 1.JGUI是为了逼迫自己研究底层点的前端技术而做的框架,之前对web底层实现一直没有深入研究,有了技术瓶颈,痛定思痛从头研究, 2.虽然现在vue技术比较火,但还在发展阶段,暂时先使用JQue ...
- JGUI源码:鼠标中键滚动再次优化(5)
//电脑端中键滚动事件 var mousewheel = getBrowserInfo() == "Firefox" ? "DOMMouseScroll" : ...
- [源码解析] PyTorch 分布式(12) ----- DistributedDataParallel 之 前向传播
[源码解析] PyTorch 分布式(12) ----- DistributedDataParallel 之 前向传播 目录 [源码解析] PyTorch 分布式(12) ----- Distribu ...
- JGUI源码:Accordion鼠标中键滚动和手机端滑动实现(2)
本文是抽屉组件在PC端滚动鼠标中键.手机端滑动时,滚动数据列表实现方法,没有使用iscroll等第三方插件,支持火狐,谷歌,IE8+等浏览器. 演示在:www.jgui.com Github地址:ht ...
- 《python解释器源码剖析》第12章--python虚拟机中的函数机制
12.0 序 函数是任何一门编程语言都具备的基本元素,它可以将多个动作组合起来,一个函数代表了一系列的动作.当然在调用函数时,会干什么来着.对,要在运行时栈中创建栈帧,用于函数的执行. 在python ...
- JGUI源码:实现图标按钮及下拉菜单(16)
效果如下 代码片段如下 <div class="jgui-btn" id="personalbtn" style="float:right;&q ...
- JGUI源码:JS菜单动态绑定(8)
我们知道Jquery绑定事件后的新添加的对象是不响应事件的,为了解决这个问题,动态添加的对象需要从新绑定,使用一个init方法实现代码如下 //Accordion封装 (function($) { J ...
- JGUI源码:响应式布局简单实现(13)
首先自我检讨下,一直没有认真研究过响应式布局,有个大致概念响应式就是屏幕缩小了就自动换行或者隐藏显示,就先按自己的理解来闭门造车思考实现过程吧. 1.首先把显示区域分成12等分,bootstrap是这 ...
- JGUI源码:组件及函数封装方法(7)
以Accordion为例1.在base.js定义一个对象,这样可以和JQuery对象区分开,用户使用组件时比较清晰一点,也可以在这里引用多个库. var JGUI = J = { version : ...
随机推荐
- 导入虚拟机vmware,此主机支持Intel VT-x,但Intel VT-x处于禁用状态和黑屏
解决方法:进入BIOS(按什么键进入bios,需要看你用什么电脑),把Intel Virtualization Technology 设置enabled 然后是黑屏解决方法:管理员模式 ...
- linux 搭建squid代理服务器
linux 搭建squid代理服务器 实验环境: 一台linux搭建Web服务器,充当内网web服务器(同时充当内网客户端) 202.100.10.100 一台linux系统充当网关服务器,两个网卡, ...
- RocketMQ从3.5.8升级到4.3.2版本实战记录
背景 我们在很早之前大约在2015年8月份左右我们开始使用Rocketmq作为公司消息中间件,那个时候RocketMQ还没有捐赠给Acaphe. RocketMQ版本还是3.2.6,中间升级了一次版本 ...
- Docker: Jenkins与Docker的自动化CI/CD流水线实战
什么是CI/CD 持续集成(Continuous Integration,CI):代码合并.构建.部署.测试都在一起,不断地执行这个过程,并对结果反馈.持续部署(Continuous Deployme ...
- 修饰符-static
一.static静态修饰符 static修饰符能够修饰属性,方法,初始代码块,不能修饰局部变量和类. 静态的变量叫常量,非静态的变量叫实例变量. 1.修饰属性 package gc.test.java ...
- tensorflow 训练之tensorboard使用
1.add saclar and histogram tf.summary.scalar('mean', mean) tf.summary.histogram('histogram', var) 2. ...
- shell脚本解压多个jar包
for m in "GATEWAY" "ORDER" "PAY"do cd /home/cpay/tomcat${m}/ROOT/WEB-I ...
- Core官方DI解析(2)-ServiceProvider
ServiceProvider ServiceProvider是我们用来获取服务实例对象的类型,它也是一个特别简单的类型,因为这个类型本身并没有做什么,其实以一种代理模式,其核心功能全部都在IServ ...
- QGridLayout
Help on class QGridLayout in module PyQt5.QtWidgets: class QGridLayout(QLayout) | QGridLayout(QWidg ...
- Photoshop调出田园照片唯美手绘油画效果
先看看效果图 原片分析:妹子脸上的光不够通透,有些灰暗,整体色调不够分明. 后期思路:色彩往油画风格调整,让画面色彩更加油润.丰富. 基础调整 (1)曝光根据照片的实际情况进行调整 (2)增加阴影部分 ...