右键单击菜单未显示在正确的位置
Right click menu not displaying in correct position
我正在尝试为项目列表创建一个编辑和删除选项,当用户右键单击该列表项目时,我已将其显示。
document.addEventListener('contextmenu', function(e) {
e.preventDefault();
var x = e.offsetX;
var y = e.offsetY;
var d = document.getElementById("context-menu");
d.style.display = "block";
d.style.left = x + 'px';
d.style.top = y + 'px';
console.log(x, y);
}, false);
#context-menu {
display: none;
position: absolute;
color: blue;
}
.listItems li {
padding-bottom: 25px;
}
<ul class="listItems">
<li>I am list one</li>
<li>I am list two</li>
<li>I am list three</li>
<li>I am list four</li>
</ul>
<ul id="context-menu">
<li> Edit </li>
<li> Delete </li>
</ul>
而 jsfiddle link 是 https://jsfiddle.net/dmfvz5qw/1/
在这里,当我右击时,名为 context-menu
的 id 没有显示在鼠标箭头附近,而是显示在点击列表的更顶部。
我需要显示 context-menu
附近的右击位置而不是任何其他位置。
请帮助我解决问题,我也需要 Pure Javascript.
的结果
请改用clientX
和clientY
:
var x = e.clientX;
var y = e.clientY;
这里需要用到clientX和clientY,
如果您想了解更多关于使用 body 滚动位置定位的信息,请参考此 link https://whosebug.com/a/7790764/2630817
document.addEventListener('contextmenu', function(e) {
e.preventDefault();
document.getElementById("context-menu").display = 'none';
var x = e.clientX ;
var y = e.clientY;
var d = document.getElementById("context-menu");
d.style.display = "block";
d.style.left = x+'px';
d.style.top = y+'px';
console.log(x,y);
}, false);
#context-menu {
display: none;
position: absolute;
color: blue;
padding: 0;
width:50px;
}
<ul class="listItems">
<li>I am list one</li>
<li>I am list two</li>
<li>I am list three</li>
<li>I am list four</li>
</ul>
<ul id="context-menu">
<li> Edit </li>
<li> Delete </li>
</ul>
我正在尝试为项目列表创建一个编辑和删除选项,当用户右键单击该列表项目时,我已将其显示。
document.addEventListener('contextmenu', function(e) {
e.preventDefault();
var x = e.offsetX;
var y = e.offsetY;
var d = document.getElementById("context-menu");
d.style.display = "block";
d.style.left = x + 'px';
d.style.top = y + 'px';
console.log(x, y);
}, false);
#context-menu {
display: none;
position: absolute;
color: blue;
}
.listItems li {
padding-bottom: 25px;
}
<ul class="listItems">
<li>I am list one</li>
<li>I am list two</li>
<li>I am list three</li>
<li>I am list four</li>
</ul>
<ul id="context-menu">
<li> Edit </li>
<li> Delete </li>
</ul>
而 jsfiddle link 是 https://jsfiddle.net/dmfvz5qw/1/
在这里,当我右击时,名为 context-menu
的 id 没有显示在鼠标箭头附近,而是显示在点击列表的更顶部。
我需要显示 context-menu
附近的右击位置而不是任何其他位置。
请帮助我解决问题,我也需要 Pure Javascript.
的结果请改用clientX
和clientY
:
var x = e.clientX;
var y = e.clientY;
这里需要用到clientX和clientY,
如果您想了解更多关于使用 body 滚动位置定位的信息,请参考此 link https://whosebug.com/a/7790764/2630817
document.addEventListener('contextmenu', function(e) {
e.preventDefault();
document.getElementById("context-menu").display = 'none';
var x = e.clientX ;
var y = e.clientY;
var d = document.getElementById("context-menu");
d.style.display = "block";
d.style.left = x+'px';
d.style.top = y+'px';
console.log(x,y);
}, false);
#context-menu {
display: none;
position: absolute;
color: blue;
padding: 0;
width:50px;
}
<ul class="listItems">
<li>I am list one</li>
<li>I am list two</li>
<li>I am list three</li>
<li>I am list four</li>
</ul>
<ul id="context-menu">
<li> Edit </li>
<li> Delete </li>
</ul>