分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

HTML自定义右键菜单oncontextmenu

发布时间:2023-09-06 01:12责任编辑:胡小海关键词:HTML

右键菜单原理:取消右键菜单oncontextmenu的默认事件,然后添加自定义样式。

一、阻止默认事件

ie:

window.event.returnValue = false;

w3c:

window,event.preventDafault();

二、阻止事件流

ie:

window.event.cancleBubble = true;

w3c:

window.event.stopPropagation();

三、代码

不用window获取窗口,因为该元素不支持ie8,采用document.body 能够兼容ie7+。

采用clientX而不是用pageX,理由同上。

rightclick.onmousedown:

鼠标按下,为取消右键菜单栏。

<!DOCTYPE html><html> ???<head> ???????<meta charset="UTF-8"> ???????<title></title> ???????<style> ???????????*{ ???????????????margin: 0; ???????????????padding: 0; ???????????} ???????????body{ ???????????????height: 600px; ???????????} ???????????.rightclick{ ???????????????display: none; ???????????????width: 100px; ???????????????height: 160px; ???????????????border-width: 1px 1px 0 1px; ???????????????border-style: solid; ???????????????border-color: black; ???????????????background-color: rgba(242,242,242,0.6); ???????????????border-radius: 4px; ???????????????position: fixed; ???????????????left: 0; ???????????????top: 0; ???????????} ???????????.rightclick ul{ ???????????????list-style: none; ???????????????cursor: pointer; ???????????} ???????????.rightclick ul li{ ???????????????text-align: center; ???????????????font-family: "微软雅黑"; ???????????????height: 31px; ???????????????line-height: 31px; ???????????????border-bottom: 1px solid #666; ???????????} ???????????????????</style> ???</head> ???<body> ???????<div class="rightclick" id="rightclick"> ???????????<ul> ???????????????<li>菜单1</li> ???????????????<li>菜单2</li> ???????????????<li>菜单3</li> ???????????????<li>菜单4</li> ???????????????<li>菜单5</li> ???????????</ul> ???????</div> ???????<script type="text/javascript"> ???????????document.body.oncontextmenu = function(e){ ???????????????var ev = window.event || e; ???????????????if(document.all){ ???????????????????ev.returnValue = false; ???//ie阻止默认事件 ???????????????}else{ ???????????????????ev.preventDefault(); ??????//w3c阻止默认事件 ???????????????} ???????????????var clientx = ev.clientX; ???????????????var clienty = ?ev.clientY; ???????????????var rightclick = document.getElementById("rightclick"); ???????????????rightclick.style.display = "block"; ???????????????rightclick.style.left = clientx+"px"; ???????????????rightclick.style.top = clienty+"px"; ???????????} ???????????????????????document.body.onmousedown = function(){ ???????????????document.getElementById("rightclick").style.display = "none"; ???????????}; ???????????????????????document.getElementById("rightclick").onclick = function(e){ ???????????????var ev = window.event|| e; ???????????????if(document.all){ ???????????????????ev.cancelBubble =true; ????// ie阻止事件流 ???????????????}else{ ???????????????????ev.stopPropagation(); ?????// w3c阻止事件流 ???????????????} ???????????????????????????}; ???????????????????</script> ???????</body></html>

四、兼容性

chromefirefoxie7+

HTML自定义右键菜单oncontextmenu

原文地址:http://www.cnblogs.com/cquptzy/p/7543622.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved