jQuery实现右键菜单、遮罩等效果代码


Posted in Javascript onSeptember 27, 2016

最近要做个某管理系统的界面,然后涉及到右键菜单,因为之前没有做过所以就做了一下~感觉还可以,不过我个人不是很喜欢右键菜单的这种形式。

操作:在固定区域内点击鼠标右键出现菜单,然后选择任意一项后进行对应页面的跳转。刚开始的想法是用catch..case..的方法,对应不同的选项,只改变弹出层里的内容,但是内容都要用jQuery生成拼接,所以选用了比较简单的页面跳转。

下面就只贴上一个示例页面的相关代码。

先上效果图:

jQuery实现右键菜单、遮罩等效果代码

**index.html主要代码**

<div id="myMenu" >
 <ul>
 <li>管理应用</li>
 <li>添加应用</li>
 <li>维护应用账号</li>
 <li>修改密码</li>
 <li>示例界面</li>
 </ul>
</div>
<div id="mask"> </div>
<div id="textbox">
主界面
</div>

**page_test.html主要代码**

<div id="textbox">
 主界面
</div>

<div id="maskbox">
 <div id='admin' class='module1'>
 <div class='top'>
  管理应用
  <img class="img_close" src="../images/close.png" alt="">
 </div>
 <div class='mid'>
  <div class='mid_left'>
  <div class='title'>应用分类:总部</div>
  <ul class='icon_list'>
   <li><img src='../images/45x45/qq.jpg' alt=''> <span>QQ</span></li>
   <li><img src='../images/45x45/qq.jpg' alt=''> <span>QQ</span></li>
   <li><img src='../images/45x45/qq.jpg' alt=''> <span>QQ</span></li>
   <li><img src='../images/45x45/qq.jpg' alt=''> <span>QQ</span></li>
   <li><img src='../images/45x45/qq.jpg' alt=''> <span>QQ</span></li>
   <li><img src='../images/45x45/qq.jpg' alt=''> <span>QQ</span></li>
   <li><img src='../images/45x45/qq.jpg' alt=''> <span>QQ</span></li>
  </ul>
  </div>
  <div class='mid_right'>
  <div class='title'>添加应用</div>
  <div class="content">
   <form action="">
   <table>
    <tr>
    <td>应用机构:</td>
    <td>
     <select class="text1" name="">
     <option value=""></option>
     </select>
    </td>
    </tr>
    <tr>
    <td>应用类型:</td>
    <td>
     <select class="text1" name="">
     <option value=""></option>
     </select>
    </td>
    </tr>
    <tr>
    <td>应用名称:</td>
    <td>
     <input type="text" class="text2">
    </td>
    </tr>
    <tr>
    <td>应用代码:</td>
    <td>
     <input type="text" class="text2">
     <span class="point">(字母、数字及组合;唯一)</span>
    </td>
    </tr>
    <tr>
    <td>接入类型:</td>
    <td>
     <select class="text1" name="">
     <option value=""></option>
     </select>
    </td>
    </tr>
    <tr>
    <td>超时时间:</td>
    <td>
     <select class="text1" name="">
     <option value=""></option>
     </select>
    </td>
    </tr>
    <tr>
    <td>选择图标:</td>
    <td>
     <input type="text" class="text2">
     <span>选择</span>
    </td>
    </tr>
    <tr>
    <td>应用地址:</td>
    <td>
     <input type="text" class="text2">
    </td>
    </tr>
    <tr>
    <td colspan="2">
     <input type="button" class="del button" value="删除">
     <input type="button" class="reset button" value="重置">
     <input type="button" class="save button" value="保存">
    </td>
    </tr>
   </table>

   </form>
  </div>
  </div>
 </div>
 <div class='end'></div>
 </div>
</div>

**reset.css代码(引入主页)**

*{
 padding: 0;
 margin: 0;
 font-family: '微软雅黑'
}
#mask{
 position: absolute;
 left: 0;
 top: 0;
 z-index: 9000;
 display: block;
}
#myMenu{
 position: absolute;
 display: none;
 z-index: 9999;
 background: white;
 border: 1px solid;
 width: 130px;
 height: 130px;
}
ul li{
 list-style: none;
 height: 25px;
 line-height:25px;
 font-size: 14px;
 cursor: pointer;
 margin-left: 5px;
 border-bottom: 1px solid black;
}
ul li:nth-child(5){
 border-bottom:none;
}
#textbox{
 background: orange;
 width: 380px;
 border: 2px solid;
}
a{
 text-decoration: none;
 color: black;
}
a:hover{
 color: white;
 background: black;
}

**main.css代码(引入主页和跳转页)**

*{
 font-size: 16px;
 color:black;
 padding: 0;
 margin: 0;
 font-family: 微软雅黑;
}
/*.top{
 background: url("../images/close.png")760px center no-repeat;
}*/
.top img{
 float: right;
 margin-top: 13px;
 margin-right: 20px;
}
/*遮罩样式*/
#maskbox{
 position:absolute;
 left:0;
 top:0;
 height: 100%;
 width: 100%;
 background:rgba(0,0,0,0.6);
}

#maskbox .module1{
 width: 800px;
 height: 500px;
 border-radius: 15px;
 border: 1px solid #BFDCE3;
 margin: 0 auto;
 margin-top: 40px;
}
#maskbox .top{
 border-radius: 15px 15px 0 0;
 height: 46px;
 line-height: 46px;
 width: 800px;
 background-color: #F1F7F2;
 border: 1px solid #BFDCE3;
 text-indent: 20px;
}
#maskbox .mid{
 height: 418px;
 width: 800px;
 background-color: white;
 border: 1px solid #BFDCE3;
}
#maskbox .end{
 height: 36px;
 width: 800px;
 background-color: #F1F7F2;
 border-radius: 0 0 15px 15px ;
 border: 1px solid #BFDCE3;
}

.mid_left,.mid_right{
 display: inline-block;
 height: 418px;
}
.mid_left{
 width: 270px;
 float: left;
 border-right: 1px solid #BFDCE3;

}
.mid_right{
 width: 528px;
 border-right: 1px solid #BFDCE3;
}
.title{

 position: relative;
 height: 40px;
 line-height: 40px;
 text-align: center;
 color:#DD9A6A;
 border-bottom: 1px solid #BFDCE3;
}

.mid_right .title{
 text-align: left;
 text-indent: 20px;
}
ul.icon_list{
 height: 377px;
 width: 270px;
 overflow: auto;
}
ul.icon_list li{
 border-bottom: 1px solid #BFDCE3;
 height: 72px;
 list-style: none;
 line-height: 72px;
 padding-left: 20px;
}
ul.icon_list li img{
 vertical-align: middle;
 margin-right: 20px;
}
.text1{
 width: 195px;
 height: 28px;
}
.text2{
 width: 192px;
 height: 28px;
}
.button{
 width: 80px;
 height: 28px;
 border-radius: 5px;
 background-color: white;
 border:1px solid #a8a8a8;
 font-size: 13px;
}
.point{
 font-size: 14px;
 color:red;
}

**test.css代码**

/*mid_right*/

table{
 margin-left: 15px;
}
table tr td{
 height: 35px;

}
table tr td:nth-child(1){
 height: 35px;
 width: 100px;
}
table tr td:nth-child(2){
 height: 35px;
 width: 390px;
}
table tr:nth-child(9) td{
 height: 100px;
 padding: 0 50px;
}
table tr:nth-child(9) .button{
 margin-right: 60px;
}
table tr:nth-child(9) .button:nth-child(3){
 margin-right: 0;
}
table span{
 font-size: 14px;
 color:deepskyblue;
}
table span.point{
 font-size: 14px;
 color:red;
}

**func.js代码(引入主页)**

//鼠标右击菜单
$(window).ready(function() {
 $('#myMenu').hide();
 $('#textbox').bind("contextmenu",function(e){
 //显示菜单
 $('#myMenu').show(500);

 //跟随鼠标位置
 $('#myMenu').css({
  'top':e.pageY+'px',
  'left':e.pageX+'px'
 });

 //屏蔽默认右键菜单
 return false;
 });
});

**main.js代码(引入主页)**

//获得选择的操作名
var check;
var checkmenu;
var choose = function(){
 $("#myMenu ul>li").bind('click',function(){
 check = $(this).text();

 page(check);

 });
};
choose();

var page = function(check){
/*
 //统一样式改变
 //右键列表隐藏
 $("#myMenu").hide();

 //出现遮罩
 $("#textbox").after("<div id='maskbox'></div>");
 checkmenu = 1;
 windowwidth = $(window).width();
 windowheight = $(window).height();
 $("#maskbox").css({
 'height': windowheight,
 'width': windowwidth
 });
*/

 switch (check){
 case "管理应用":
  page_admin();
  break;
 case "添加应用":
  page_add();
  break;
 case "维护应用账号":
  page_maintain();
  break;
 case "修改密码":
  page_modify();
  break;
 case "示例界面":
  page_test();
  break;
 }
};

var page_admin = function(){
 console.log("管理应用");
 window.location.href="page/page_admin.html";
};

var page_add = function(){
 console.log("添加应用");
 window.location.href="page/page_add.html";
};

var page_maintain = function(){
 console.log("维护应用账号");
 window.location.href="page/page_maintain.html";
};

var page_modify = function(){
 console.log("修改密码");
 window.location.href="page/page_modify.html";
};

var page_test = function(){
 console.log("示例界面");
 window.location.href="page/page_test.html";
};


//改变屏幕大小时
$(window).resize(function(){
 if(checkmenu == 1) {
 windowwidth = $(window).width();
 windowheight = $(window).height();
 $("#maskbox").css({
  'height': windowheight,
  'width': windowwidth
 });
 }
});

**com.js代码**

//统一样式改变
//右键列表隐藏
$("#myMenu").hide();

//出现遮罩
$("#textbox").after("<div id='maskbox'></div>");
checkmenu = 1;
windowwidth = $(window).width();
windowheight = $(window).height();
$("#maskbox").css({
 'height': windowheight,
 'width': windowwidth
});

//关闭弹窗 回到主界面
$(".img_close").bind("click",function(){
 window.location.href="../index.html";
});

//点击按钮后也回到主界面
$(".save").click(function(){
 window.location.href="../index.html";
});

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

Javascript 相关文章推荐
JS 建立对象的方法
Apr 21 Javascript
javascript-简单的计算器实现步骤分解(附图)
May 30 Javascript
Javascript基础 函数“重载” 详细介绍
Oct 25 Javascript
js控制容器隐藏出现防止样式变化的两种方法
Apr 25 Javascript
angularJS结合canvas画图例子
Feb 09 Javascript
5个最顶级jQuery图表类库插件【jquery插件库】
May 05 Javascript
AngularJS Ajax详解及示例代码
Aug 17 Javascript
Bootstrap警告(Alerts)的实现方法
Mar 22 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
Sep 13 Javascript
js实时监控文本框输入字数的实例代码
Jan 18 Javascript
vue的toast弹窗组件实例详解
May 14 Javascript
js实现盒子拖拽动画效果
Aug 09 Javascript
jQuery实现图片轮播效果代码
Sep 27 #Javascript
JS不完全国际化&amp;本地化手册 之 理论篇
Sep 27 #Javascript
Javascript json object 与string 相互转换的简单实现
Sep 27 #Javascript
js转html实体的方法
Sep 27 #Javascript
JSON与String互转的实现方法(Javascript)
Sep 27 #Javascript
通过JS获取Request.QueryString()参数的值实现方法
Sep 27 #Javascript
微信小程序使用第三方库Underscore.js步骤详解
Sep 27 #Javascript
You might like
PHP生成带有雪花背景的验证码
2008/09/28 PHP
Thinkphp使用mongodb数据库实现多条件查询方法
2014/06/26 PHP
PHP中捕获超时事件的方法实例
2015/02/12 PHP
用jquery来定位
2007/02/20 Javascript
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
将json当数据库一样操作的javascript lib
2013/10/28 Javascript
jquery.post用法之type设置问题
2014/02/24 Javascript
删除javascript所创建子节点的方法
2015/05/21 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
2020/12/01 Javascript
通过原生JS实现为元素添加事件的方法
2016/11/23 Javascript
jQuery实现移动端Tab选项卡效果
2017/03/15 Javascript
angularjs封装$http为factory的方法
2017/05/18 Javascript
详解nodejs异步I/O和事件循环
2017/06/07 NodeJs
easyui简介_动力节点Java学院整理
2017/07/14 Javascript
Vue2 Vue-cli中使用Typescript的配置详解
2017/07/24 Javascript
Three.js实现绘制字体模型示例代码
2017/09/26 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
详解JavaScript的数据类型以及数据类型的转换
2019/04/20 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
element-ui表格合并span-method的实现方法
2019/05/21 Javascript
微信小程序之数据绑定原理解析
2019/08/14 Javascript
微信小程序中的上拉、下拉菜单功能
2020/03/13 Javascript
Openlayers实现距离面积测量
2020/09/28 Javascript
mapboxgl实现带箭头轨迹线的代码
2021/01/04 Javascript
对于Python的Django框架部署的一些建议
2015/04/09 Python
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
Python中内置的日志模块logging用法详解
2016/07/12 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
Python数据结构之哈夫曼树定义与使用方法示例
2018/04/22 Python
对Python 中矩阵或者数组相减的法则详解
2019/08/26 Python
Django中密码的加密、验密、解密操作
2019/12/19 Python
大学生年度自我鉴定
2013/10/31 职场文书
空气的环保标语
2014/06/12 职场文书
小学生学习保证书
2015/02/26 职场文书
起诉书格式范文
2015/05/20 职场文书
解析MySQL binlog
2021/06/11 MySQL