漂亮的Javascript右键菜单小功能【原创】
来源:互联网 发布:网络模拟大乐透摇奖机 编辑:程序博客网 时间:2024/04/19 10:58
操作环境:Visual Studio.Net2003
操作系统:window Xp SP2
如果您有任何意见,请留下您宝贵的意见以便告知
右键菜单网上一搜一大把,用起来不是很方便,自己偷懒写了个简单的,看了163上的右键菜单蛮漂亮的,自己也做了一个用在DataGrid上,看上去跟它很象,功能主要根据需求自己加,代码在最下面部分
实现起来很简单,主要就是创建DIV和隐藏DIV,加上css就很容易的实现了,为了方便,全部写在了JS文件中,引用这个js,不需要写代码就可以
主要实现如下:
当页面加载的时候调用右键菜单方法:
window.onload = ShowRightMenu
ShowRightMenu函数:
function ShowRightMenu()
{
if($("div_RightMenu") == null)
{
CreateMenu(); //如果右键菜单不存在,则创建
document.oncontextmenu = ShowMenu
document.body.onclick = HideMenu
}
else
{
document.oncontextmenu = ShowMenu
document.body.onclick = HideMenu
}
}
{
if($("div_RightMenu") == null)
{
CreateMenu(); //如果右键菜单不存在,则创建
document.oncontextmenu = ShowMenu
document.body.onclick = HideMenu
}
else
{
document.oncontextmenu = ShowMenu
document.body.onclick = HideMenu
}
}
CreateMenu()函数:
function CreateMenu()
{
var div_Menu = document.createElement("Div");
div_Menu.id = "div_RightMenu";
div_Menu.className = "div_RightMenu";
var div_Menu1 = document.createElement("Div");
div_Menu1.className = "divMenuItem";
div_Menu1.onclick = evtMenu1;
div_Menu1.onmousemove = evtMenuOnmouseMove;
div_Menu1.onmouseout = evtOnMouseOut;
div_Menu1.innerHTML = "我的首页";
var div_Menu2 = document.createElement("Div");
div_Menu2.className = "divMenuItem";
div_Menu2.onclick = evtMenu2;
div_Menu2.onmousemove = evtMenuOnmouseMove
div_Menu2.onmouseout = evtOnMouseOut
div_Menu2.innerHTML = "删除记录";
var div_Menu3 = document.createElement("Div");
div_Menu3.className = "divMenuItem";
div_Menu3.onmousemove = evtMenuOnmouseMove;
div_Menu3.onmouseout = evtOnMouseOut;
div_Menu3.innerHTML = "详细信息";
var div_Menu4 = document.createElement("Div");
div_Menu4.className = "divMenuItem";
div_Menu4.onmousemove = evtMenuOnmouseMove;
div_Menu4.onmouseout = evtOnMouseOut;
div_Menu4.innerHTML = "刷新";
var Hr1 = document.createElement("Hr");
var div_Menu5 = document.createElement("Div");
div_Menu5.className = "divMenuItem";
div_Menu5.onmousemove = evtMenuOnmouseMove;
div_Menu5.onmouseout = evtOnMouseOut;
div_Menu5.innerHTML = "加入收藏夹";
var div_Menu6 = document.createElement("Div");
div_Menu6.className = "divMenuItem";
div_Menu6.onmousemove = evtMenuOnmouseMove;
div_Menu6.onmouseout = evtOnMouseOut;
div_Menu6.innerHTML = "复制";
var div_Menu7 = document.createElement("Div");
div_Menu7.className = "divMenuItem";
div_Menu7.onmousemove = evtMenuOnmouseMove;
div_Menu7.onmouseout = evtOnMouseOut;
div_Menu7.innerHTML = "全选";
var Hr2 = document.createElement("Hr");
var div_Menu8 = document.createElement("Div");
div_Menu8.className = "divMenuItem";
div_Menu8.onmousemove = evtMenuOnmouseMove;
div_Menu8.onmouseout = evtOnMouseOut;
div_Menu8.innerHTML = "联系作者";
var div_Menu9 = document.createElement("Div");
div_Menu9.className = "divMenuItem";
div_Menu9.onmousemove = evtMenuOnmouseMove;
div_Menu9.onmouseout = evtOnMouseOut;
div_Menu9.innerHTML = "关于此功能";
var div_Menu10 = document.createElement("Div");
div_Menu10.className = "divMenuItem";
div_Menu10.style.marginBottom = 0;
div_Menu10.onmousemove = evtMenuOnmouseMove;
div_Menu10.onmouseout = evtOnMouseOut;
div_Menu10.innerHTML = "属性";
div_Menu.appendChild(div_Menu1);
div_Menu.appendChild(div_Menu2);
div_Menu.appendChild(div_Menu3);
div_Menu.appendChild(div_Menu4);
div_Menu.appendChild(Hr1);
div_Menu.appendChild(div_Menu5);
div_Menu.appendChild(div_Menu6);
div_Menu.appendChild(div_Menu7);
div_Menu.appendChild(Hr2);
div_Menu.appendChild(div_Menu8);
div_Menu.appendChild(div_Menu9);
div_Menu.appendChild(div_Menu10);
document.body.appendChild(div_Menu);
}
{
var div_Menu = document.createElement("Div");
div_Menu.id = "div_RightMenu";
div_Menu.className = "div_RightMenu";
var div_Menu1 = document.createElement("Div");
div_Menu1.className = "divMenuItem";
div_Menu1.onclick = evtMenu1;
div_Menu1.onmousemove = evtMenuOnmouseMove;
div_Menu1.onmouseout = evtOnMouseOut;
div_Menu1.innerHTML = "我的首页";
var div_Menu2 = document.createElement("Div");
div_Menu2.className = "divMenuItem";
div_Menu2.onclick = evtMenu2;
div_Menu2.onmousemove = evtMenuOnmouseMove
div_Menu2.onmouseout = evtOnMouseOut
div_Menu2.innerHTML = "删除记录";
var div_Menu3 = document.createElement("Div");
div_Menu3.className = "divMenuItem";
div_Menu3.onmousemove = evtMenuOnmouseMove;
div_Menu3.onmouseout = evtOnMouseOut;
div_Menu3.innerHTML = "详细信息";
var div_Menu4 = document.createElement("Div");
div_Menu4.className = "divMenuItem";
div_Menu4.onmousemove = evtMenuOnmouseMove;
div_Menu4.onmouseout = evtOnMouseOut;
div_Menu4.innerHTML = "刷新";
var Hr1 = document.createElement("Hr");
var div_Menu5 = document.createElement("Div");
div_Menu5.className = "divMenuItem";
div_Menu5.onmousemove = evtMenuOnmouseMove;
div_Menu5.onmouseout = evtOnMouseOut;
div_Menu5.innerHTML = "加入收藏夹";
var div_Menu6 = document.createElement("Div");
div_Menu6.className = "divMenuItem";
div_Menu6.onmousemove = evtMenuOnmouseMove;
div_Menu6.onmouseout = evtOnMouseOut;
div_Menu6.innerHTML = "复制";
var div_Menu7 = document.createElement("Div");
div_Menu7.className = "divMenuItem";
div_Menu7.onmousemove = evtMenuOnmouseMove;
div_Menu7.onmouseout = evtOnMouseOut;
div_Menu7.innerHTML = "全选";
var Hr2 = document.createElement("Hr");
var div_Menu8 = document.createElement("Div");
div_Menu8.className = "divMenuItem";
div_Menu8.onmousemove = evtMenuOnmouseMove;
div_Menu8.onmouseout = evtOnMouseOut;
div_Menu8.innerHTML = "联系作者";
var div_Menu9 = document.createElement("Div");
div_Menu9.className = "divMenuItem";
div_Menu9.onmousemove = evtMenuOnmouseMove;
div_Menu9.onmouseout = evtOnMouseOut;
div_Menu9.innerHTML = "关于此功能";
var div_Menu10 = document.createElement("Div");
div_Menu10.className = "divMenuItem";
div_Menu10.style.marginBottom = 0;
div_Menu10.onmousemove = evtMenuOnmouseMove;
div_Menu10.onmouseout = evtOnMouseOut;
div_Menu10.innerHTML = "属性";
div_Menu.appendChild(div_Menu1);
div_Menu.appendChild(div_Menu2);
div_Menu.appendChild(div_Menu3);
div_Menu.appendChild(div_Menu4);
div_Menu.appendChild(Hr1);
div_Menu.appendChild(div_Menu5);
div_Menu.appendChild(div_Menu6);
div_Menu.appendChild(div_Menu7);
div_Menu.appendChild(Hr2);
div_Menu.appendChild(div_Menu8);
div_Menu.appendChild(div_Menu9);
div_Menu.appendChild(div_Menu10);
document.body.appendChild(div_Menu);
}
右键菜单中的菜单的一些事件极其样式:
function evtMenu1()
{
HideMenu();
alert('Menu1');
}
function evtMenu2()
{
HideMenu();
}
function evtMenuOnmouseMove()
{
this.style.backgroundColor='#8AAD77';
this.style.paddingLeft='30px';
}
function evtOnMouseOut()
{
this.style.backgroundColor='#FAFFF8';
}
{
HideMenu();
alert('Menu1');
}
function evtMenu2()
{
HideMenu();
}
function evtMenuOnmouseMove()
{
this.style.backgroundColor='#8AAD77';
this.style.paddingLeft='30px';
}
function evtOnMouseOut()
{
this.style.backgroundColor='#FAFFF8';
}
判断是否是IE:
// 判断客户端浏览器
function IsIE()
{
if (navigator.appName=="Microsoft Internet Explorer")
{
return true;
}
else
{
return false;
}
}
function IsIE()
{
if (navigator.appName=="Microsoft Internet Explorer")
{
return true;
}
else
{
return false;
}
}
隐藏菜单和便利函数:
function HideMenu()
{
if (IsIE()) $("div_RightMenu").style.display="none";
}
function $(gID)
{
return document.getElementById(gID);
}
{
if (IsIE()) $("div_RightMenu").style.display="none";
}
function $(gID)
{
return document.getElementById(gID);
}
很简单,
为了更方便,
本打算上传代码,提供下载的,似乎上传出了问题,总是报黄页错误,真的很恶心,
只能直接贴出来了,copy下就可以了
=================================================================
以下是完整代码程序:
jsRightMenu.js
window.onload = ShowRightMenu
function evtMenu1()
{
HideMenu();
alert('Menu1');
}
function evtMenu2()
{
HideMenu();
}
function evtMenuOnmouseMove()
{
this.style.backgroundColor='#8AAD77';
this.style.paddingLeft='30px';
}
function evtOnMouseOut()
{
this.style.backgroundColor='#FAFFF8';
}
function CreateMenu()
{
var div_Menu = document.createElement("Div");
div_Menu.id = "div_RightMenu";
div_Menu.className = "div_RightMenu";
var div_Menu1 = document.createElement("Div");
div_Menu1.className = "divMenuItem";
div_Menu1.onclick = evtMenu1;
div_Menu1.onmousemove = evtMenuOnmouseMove;
div_Menu1.onmouseout = evtOnMouseOut;
div_Menu1.innerHTML = "我的首页";
var div_Menu2 = document.createElement("Div");
div_Menu2.className = "divMenuItem";
div_Menu2.onclick = evtMenu2;
div_Menu2.onmousemove = evtMenuOnmouseMove
div_Menu2.onmouseout = evtOnMouseOut
div_Menu2.innerHTML = "删除记录";
var div_Menu3 = document.createElement("Div");
div_Menu3.className = "divMenuItem";
div_Menu3.onmousemove = evtMenuOnmouseMove;
div_Menu3.onmouseout = evtOnMouseOut;
div_Menu3.innerHTML = "详细信息";
var div_Menu4 = document.createElement("Div");
div_Menu4.className = "divMenuItem";
div_Menu4.onmousemove = evtMenuOnmouseMove;
div_Menu4.onmouseout = evtOnMouseOut;
div_Menu4.innerHTML = "刷新";
var Hr1 = document.createElement("Hr");
var div_Menu5 = document.createElement("Div");
div_Menu5.className = "divMenuItem";
div_Menu5.onmousemove = evtMenuOnmouseMove;
div_Menu5.onmouseout = evtOnMouseOut;
div_Menu5.innerHTML = "加入收藏夹";
var div_Menu6 = document.createElement("Div");
div_Menu6.className = "divMenuItem";
div_Menu6.onmousemove = evtMenuOnmouseMove;
div_Menu6.onmouseout = evtOnMouseOut;
div_Menu6.innerHTML = "复制";
var div_Menu7 = document.createElement("Div");
div_Menu7.className = "divMenuItem";
div_Menu7.onmousemove = evtMenuOnmouseMove;
div_Menu7.onmouseout = evtOnMouseOut;
div_Menu7.innerHTML = "全选";
var Hr2 = document.createElement("Hr");
var div_Menu8 = document.createElement("Div");
div_Menu8.className = "divMenuItem";
div_Menu8.onmousemove = evtMenuOnmouseMove;
div_Menu8.onmouseout = evtOnMouseOut;
div_Menu8.innerHTML = "联系作者";
var div_Menu9 = document.createElement("Div");
div_Menu9.className = "divMenuItem";
div_Menu9.onmousemove = evtMenuOnmouseMove;
div_Menu9.onmouseout = evtOnMouseOut;
div_Menu9.innerHTML = "关于此功能";
var div_Menu10 = document.createElement("Div");
div_Menu10.className = "divMenuItem";
div_Menu10.style.marginBottom = 0;
div_Menu10.onmousemove = evtMenuOnmouseMove;
div_Menu10.onmouseout = evtOnMouseOut;
div_Menu10.innerHTML = "属性";
div_Menu.appendChild(div_Menu1);
div_Menu.appendChild(div_Menu2);
div_Menu.appendChild(div_Menu3);
div_Menu.appendChild(div_Menu4);
div_Menu.appendChild(Hr1);
div_Menu.appendChild(div_Menu5);
div_Menu.appendChild(div_Menu6);
div_Menu.appendChild(div_Menu7);
div_Menu.appendChild(Hr2);
div_Menu.appendChild(div_Menu8);
div_Menu.appendChild(div_Menu9);
div_Menu.appendChild(div_Menu10);
document.body.appendChild(div_Menu);
}
function ShowRightMenu()
{
if($("div_RightMenu") == null)
{
CreateMenu();
document.oncontextmenu = ShowMenu
document.body.onclick = HideMenu
}
else
{
document.oncontextmenu = ShowMenu
document.body.onclick = HideMenu
}
}
// 判断客户端浏览器
function IsIE()
{
if (navigator.appName=="Microsoft Internet Explorer")
{
return true;
}
else
{
return false;
}
}
function ShowMenu()
{
if (IsIE())
{
document.body.onclick = HideMenu;
// $("hideMenu_DeleteRow").value = parm;
var redge=document.body.clientWidth-event.clientX;
var bedge=document.body.clientHeight-event.clientY;
var menu = $("div_RightMenu");
if (redge<menu.offsetWidth)
{
menu.style.left=document.body.scrollLeft + event.clientX-menu.offsetWidth
}
else
{
menu.style.left=document.body.scrollLeft + event.clientX
//这里有改动
// menu.style.visibility = "visible";//页面底端突出
menu.style.display = "block";
}
if (bedge<menu.offsetHeight)
{
menu.style.top=document.body.scrollTop + event.clientY - menu.offsetHeight
}
else
{
menu.style.top = document.body.scrollTop + event.clientY
// menu.style.visibility = "visible";
menu.style.display = "block";
}
}
return false;
}
function HideMenu()
{
if (IsIE()) $("div_RightMenu").style.display="none";
}
function $(gID)
{
return document.getElementById(gID);
}
function evtMenu1()
{
HideMenu();
alert('Menu1');
}
function evtMenu2()
{
HideMenu();
}
function evtMenuOnmouseMove()
{
this.style.backgroundColor='#8AAD77';
this.style.paddingLeft='30px';
}
function evtOnMouseOut()
{
this.style.backgroundColor='#FAFFF8';
}
function CreateMenu()
{
var div_Menu = document.createElement("Div");
div_Menu.id = "div_RightMenu";
div_Menu.className = "div_RightMenu";
var div_Menu1 = document.createElement("Div");
div_Menu1.className = "divMenuItem";
div_Menu1.onclick = evtMenu1;
div_Menu1.onmousemove = evtMenuOnmouseMove;
div_Menu1.onmouseout = evtOnMouseOut;
div_Menu1.innerHTML = "我的首页";
var div_Menu2 = document.createElement("Div");
div_Menu2.className = "divMenuItem";
div_Menu2.onclick = evtMenu2;
div_Menu2.onmousemove = evtMenuOnmouseMove
div_Menu2.onmouseout = evtOnMouseOut
div_Menu2.innerHTML = "删除记录";
var div_Menu3 = document.createElement("Div");
div_Menu3.className = "divMenuItem";
div_Menu3.onmousemove = evtMenuOnmouseMove;
div_Menu3.onmouseout = evtOnMouseOut;
div_Menu3.innerHTML = "详细信息";
var div_Menu4 = document.createElement("Div");
div_Menu4.className = "divMenuItem";
div_Menu4.onmousemove = evtMenuOnmouseMove;
div_Menu4.onmouseout = evtOnMouseOut;
div_Menu4.innerHTML = "刷新";
var Hr1 = document.createElement("Hr");
var div_Menu5 = document.createElement("Div");
div_Menu5.className = "divMenuItem";
div_Menu5.onmousemove = evtMenuOnmouseMove;
div_Menu5.onmouseout = evtOnMouseOut;
div_Menu5.innerHTML = "加入收藏夹";
var div_Menu6 = document.createElement("Div");
div_Menu6.className = "divMenuItem";
div_Menu6.onmousemove = evtMenuOnmouseMove;
div_Menu6.onmouseout = evtOnMouseOut;
div_Menu6.innerHTML = "复制";
var div_Menu7 = document.createElement("Div");
div_Menu7.className = "divMenuItem";
div_Menu7.onmousemove = evtMenuOnmouseMove;
div_Menu7.onmouseout = evtOnMouseOut;
div_Menu7.innerHTML = "全选";
var Hr2 = document.createElement("Hr");
var div_Menu8 = document.createElement("Div");
div_Menu8.className = "divMenuItem";
div_Menu8.onmousemove = evtMenuOnmouseMove;
div_Menu8.onmouseout = evtOnMouseOut;
div_Menu8.innerHTML = "联系作者";
var div_Menu9 = document.createElement("Div");
div_Menu9.className = "divMenuItem";
div_Menu9.onmousemove = evtMenuOnmouseMove;
div_Menu9.onmouseout = evtOnMouseOut;
div_Menu9.innerHTML = "关于此功能";
var div_Menu10 = document.createElement("Div");
div_Menu10.className = "divMenuItem";
div_Menu10.style.marginBottom = 0;
div_Menu10.onmousemove = evtMenuOnmouseMove;
div_Menu10.onmouseout = evtOnMouseOut;
div_Menu10.innerHTML = "属性";
div_Menu.appendChild(div_Menu1);
div_Menu.appendChild(div_Menu2);
div_Menu.appendChild(div_Menu3);
div_Menu.appendChild(div_Menu4);
div_Menu.appendChild(Hr1);
div_Menu.appendChild(div_Menu5);
div_Menu.appendChild(div_Menu6);
div_Menu.appendChild(div_Menu7);
div_Menu.appendChild(Hr2);
div_Menu.appendChild(div_Menu8);
div_Menu.appendChild(div_Menu9);
div_Menu.appendChild(div_Menu10);
document.body.appendChild(div_Menu);
}
function ShowRightMenu()
{
if($("div_RightMenu") == null)
{
CreateMenu();
document.oncontextmenu = ShowMenu
document.body.onclick = HideMenu
}
else
{
document.oncontextmenu = ShowMenu
document.body.onclick = HideMenu
}
}
// 判断客户端浏览器
function IsIE()
{
if (navigator.appName=="Microsoft Internet Explorer")
{
return true;
}
else
{
return false;
}
}
function ShowMenu()
{
if (IsIE())
{
document.body.onclick = HideMenu;
// $("hideMenu_DeleteRow").value = parm;
var redge=document.body.clientWidth-event.clientX;
var bedge=document.body.clientHeight-event.clientY;
var menu = $("div_RightMenu");
if (redge<menu.offsetWidth)
{
menu.style.left=document.body.scrollLeft + event.clientX-menu.offsetWidth
}
else
{
menu.style.left=document.body.scrollLeft + event.clientX
//这里有改动
// menu.style.visibility = "visible";//页面底端突出
menu.style.display = "block";
}
if (bedge<menu.offsetHeight)
{
menu.style.top=document.body.scrollTop + event.clientY - menu.offsetHeight
}
else
{
menu.style.top = document.body.scrollTop + event.clientY
// menu.style.visibility = "visible";
menu.style.display = "block";
}
}
return false;
}
function HideMenu()
{
if (IsIE()) $("div_RightMenu").style.display="none";
}
function $(gID)
{
return document.getElementById(gID);
}
css.css
.div_RightMenu
{
z-index:30000;
text-align:left;
cursor: default;
position: absolute;
background-color:#FAFFF8;
width:160px;
height:auto;
border: 1px solid #333333;
display:none;
filter:progid:DXImageTransform.Microsoft.Shadow(Color=#333333,Direction=120,strength=5);
}
.divMenuItem
{
height:17px;
color:Black;
font-family:宋体;
vertical-align:middle;
font-size:10pt;
margin-bottom:3px;
cursor:hand;
padding-left:30px;
padding-top:2px;
}
{
z-index:30000;
text-align:left;
cursor: default;
position: absolute;
background-color:#FAFFF8;
width:160px;
height:auto;
border: 1px solid #333333;
display:none;
filter:progid:DXImageTransform.Microsoft.Shadow(Color=#333333,Direction=120,strength=5);
}
.divMenuItem
{
height:17px;
color:Black;
font-family:宋体;
vertical-align:middle;
font-size:10pt;
margin-bottom:3px;
cursor:hand;
padding-left:30px;
padding-top:2px;
}
页面引用
<link href="css.css" type="text/css" rel="stylesheet">
<script language="javascript" src="jsRightMenu.js"></script>
<script language="javascript" src="jsRightMenu.js"></script>
- 漂亮的Javascript右键菜单小功能【原创】
- [原创] javascript 中的右键菜单
- javascript自定义右键菜单并屏蔽默认右键菜单【原创】
- javascript自定义右键菜单并屏蔽默认右键菜单【原创】
- TreeView的自定义右键菜单(半原创)
- JavaScript实现下拉菜单对文本框赋值的小功能
- 给IE的右键菜单增加功能
- 完成地图界面右键菜单的功能
- TreeList控件右键菜单功能的实现
- JS 右键菜单功能
- JS 右键菜单功能
- jQuery--右键菜单功能
- 自定义右键菜单功能
- TOC右键菜单功能
- 实现右键菜单功能
- 用javascript 实现网页鼠标右键弹出菜单功能
- 收集到的Javascript右键菜单实例
- qt右键菜单及右键菜单功能
- 乐乐的第一次胎动
- 令人忧心的感冒
- 打印機紙張大小的設置
- jsp乱码问题解决(转)
- 指针和引用的区别
- 漂亮的Javascript右键菜单小功能【原创】
- 开张了在CSDN
- innerHtml和innerText的用法
- 图片在固定区域内自动伸缩(自适应)
- Fedora 7 安装与配置指南
- 如何禁用我最近的文档?
- 需求变更管理是web项目管理中最重要的一个环节,需求变更管理的有效性直接影响项目的成功与否
- 沈阳地铁线程规划图(地铁1号 -- 地铁5号)
- 格式化输出日期和时间