JavaScript 实现自定义右键菜单及坐标获取
作者:拾光时间:2026-10-29 07:38:22浏览:255
本文介绍如何利用 JavaScript 事件对象获取鼠标点击的坐标 (x, y),从而实现自定义右键菜单功能。通过监听右键事件并定位元素位置,开发者可以替换浏览器默认行为,提升用户交互体验。
JavaScript 自定义右键菜单实现
要实现自定义的右键菜单行为,核心在于通过事件对象(Event Object)获取鼠标点击时的具体坐标 (x, y)。这允许开发者根据鼠标位置动态定位菜单元素,从而覆盖浏览器的默认右键行为。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>demo</title>
<style type="text/css">
html{
height:100%;
}
body{
height:100%;
}
#mydiv{
width:300px;
height:300px;
background-color: #ff7400;
}
#ctxMenu{
background-color: #ff7400;
list-style-type: none;
position: absolute;
padding:0px;
border:1px solid #000;
visibility: hidden;
}
</style>
</head>
<body>
<div id="mydiv"></div>
<h2 id="show"></h2>
<input type="text"id="txt"><span id="help"></span>
<ul id="ctxMenu">
<li>上传</li>
<li>下载</li>
<li>新建</li>
<li>取消</li>
</ul>
<script type="text/javascript">
var $=function(id){
return document.getElementById(id);
};
var h2=$("show");
var ctx=$("ctxMenu");
var txt=$("txt");
var help=$("help");
/*
txt.onfocus=function(){
help.innerHTML="请输入金额";
}
txt.onkeydown=function(event){
help.innerHTML="";
var code=event.keyCode;
if(!(code>=48&&code<=57||code>=96&&code<=105||code==46||code==8||code==13||code==37||code==39||code==110||code==190)){
event.preventDefault();
}
}
*/
document.body.oncontextmenu=function(event){
event.preventDefault();
var x=event.pageX;
var y=event.pageY;
ctx.style.left=x+"px";
ctx.style.top=y+"px";
ctx.style.visibility="visible";
}
document.body.onclick=function(){
ctx.style.visibility="hidden";
}
/*
document.body.onmousemove=function(event){
var x=event.pageX;
var y=event.pageY;
h2.innerHTML=x+":"+y;
}
*/
window.onbeforeunload=function(){
var v=$("txt").value;
if(v){
return "";
}
}
$("mydiv").onclick=function(){
$("show").innerHTML="click";
};
$("mydiv").ondblclick=function(){
$("show").innerHTML="dblclick";
};
$("mydiv").onmouseover=function(){
$("show").innerHTML="mouseover";
this.style.backgroundColor="#2d2d2d";
};
$("mydiv").onmouseout=function(){
$("show").innerHTML="mouseout";
this.style.backgroundColor="pink";
}
</script>
</body>
</html>
以上就是本文关于 JavaScript 自定义右键菜单及坐标获取的全部内容,希望这些示例代码能帮助到大家。
如果您觉得文章对您有帮助,请花一点时间将其分享给您的朋友,或者在下方留下您的评论。我们将衷心感谢您的支持与反馈!
作者最新文章
JS处理含Emoji或中文的字符串转数组乱码问题
2026-11-05 16:12:28
JS怎么使用展开运算符合并对象
2026-11-05 14:42:18
ES6+环境下判断JS对象为空的简洁写法
2026-11-05 12:12:23
怎么通过replacer函数自定义JS中JSON的格式化输出
2026-11-05 11:19:44
JS正则表达式基础:字面量与RegExp构造函数的区别及常用元字符
2026-11-05 11:16:58
