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 28 Javascript
基于JQuery实现鼠标点击文本框显示隐藏提示文本
Feb 23 Javascript
JS控制阿拉伯数字转为中文大写示例代码
Sep 04 Javascript
Javascript基础教程之函数对象和属性
Jan 18 Javascript
基于JavaScript代码实现随机漂浮图片广告
Jan 05 Javascript
javascript事件处理模型实例说明
May 31 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
Dec 24 Javascript
node.js使用express框架进行文件上传详解
Mar 03 Javascript
vue-cli3项目展示本地Markdown文件的方法
Jun 07 Javascript
百度小程序之间的页面通信过程详解
Jul 18 Javascript
JavaScript语法约定和程序调试原理解析
Nov 03 Javascript
javascript实现点击产生随机图形
Jan 25 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伪造referer突破网盘禁止外连的代码
2008/06/15 PHP
浅谈json_encode用法
2015/03/05 PHP
PHP PDOStatement::getAttribute讲解
2019/02/01 PHP
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
js 函数的副作用分析
2011/08/23 Javascript
文本框根据输入内容自适应高度的代码
2011/10/24 Javascript
Jquery Post处理后不进入回调的原因及解决方法
2014/07/15 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
2015/08/15 Javascript
JS动态添加iframe的代码
2015/09/14 Javascript
jQuery获取浏览器类型和版本号的方法
2016/07/05 Javascript
js数组去重的hash方法
2016/12/22 Javascript
Node.js设置CORS跨域请求中多域名白名单的方法
2017/03/28 Javascript
js和jQuery以及easyui实现对下拉框的指定赋值方法
2018/01/23 jQuery
垃圾回收器的相关知识点总结
2018/05/13 Javascript
jQuery仿移动端支付宝键盘的实现代码
2018/08/15 jQuery
微信小程序使用map组件实现路线规划功能示例
2019/01/22 Javascript
小程序如何支持使用 async/await详解
2019/09/12 Javascript
如何优雅地在Node应用中进行错误异常处理
2019/11/25 Javascript
[02:41]DOTA2亚洲邀请赛小组赛第三日 赛事回顾
2015/02/01 DOTA
python getopt详解及简单实例
2016/12/30 Python
Python分支结构(switch)操作简介
2018/01/17 Python
python语音识别实践之百度语音API
2018/08/30 Python
Python读取指定日期邮件的实例
2019/02/01 Python
Hotels.com中国区:好订网
2016/08/18 全球购物
临床医学系毕业生推荐信
2013/11/09 职场文书
护士演讲稿范文
2014/01/05 职场文书
应届大学生简历中的自我评价
2014/01/15 职场文书
暑期研修感言
2014/02/17 职场文书
党员自我剖析材料范文
2014/10/06 职场文书
2014年军人思想汇报范文
2014/10/12 职场文书
碧霞祠导游词
2015/02/09 职场文书
史上最牛的辞职信
2015/02/28 职场文书
职称评定个人总结
2015/03/05 职场文书
2016继续教育培训学习心得体会
2016/01/19 职场文书
Go语言实现Snowflake雪花算法
2021/06/08 Golang
纯CSS3实现div按照顺序出入效果
2021/07/15 HTML / CSS