Javascript 相对于光标坐标的Div位置
我有一个带有自定义上下文菜单的图像库。在图像上单击鼠标右键时,菜单位置相对于光标坐标 如果坐标+div大小>窗口大小,div的位置将发生变化,div应位于img内 当我点击图像,坐标+div size小于window size时,没有问题。问题是,当我单击坐标+div size为>窗口大小的位置时,有时效果很好,有时div位置似乎不符合jvascript条件。我不明白 代码如下:Javascript 相对于光标坐标的Div位置,javascript,html,css,Javascript,Html,Css,我有一个带有自定义上下文菜单的图像库。在图像上单击鼠标右键时,菜单位置相对于光标坐标 如果坐标+div大小>窗口大小,div的位置将发生变化,div应位于img内 当我点击图像,坐标+div size小于window size时,没有问题。问题是,当我单击坐标+div size为>窗口大小的位置时,有时效果很好,有时div位置似乎不符合jvascript条件。我不明白 代码如下: gary.addEventListener('contextmenu', gallery); function g
gary.addEventListener('contextmenu', gallery);
function gallery(e){
e.preventDefault();
var reh=e.clientY;
var rey=e.clientX;
var cnx=conxm.clientHeight;
var cxm=conxm.clientWidth;
var gig=window.innerHeight;
var fgi=window.innerWidth;
if((reh+cnx)>=gig && (rey+cxm)<=fgi){
conxm.style.top=((gig-cnx)-10)+"px";
conxm.style.left=rey+"px";
}
else if((reh+cnx)<=gig && (rey+cxm)>=fgi){
conxm.style.top=reh+"px";
conxm.style.left=((fgi-cxm)-10)+"px";
}
else if((reh+cnx)>=gig && (rey+cxm)>=fgi){
conxm.style.top=((gig-cnx)-10)+"px";
conxm.style.left=((fgi-cxm)-10)+"px";
}
else{
conxm.style.top=reh+"px";
conxm.style.left=rey+"px";
}
conxm.style.display="block";
}
<div id="curtain">
<div id="txt">
</div>
<div id="rev">
<img src="../img/revi.png" onClick="rvs()">
</div>
<img src="" name="gary">
<div id="frw">
<img src="../img/reviv.png" onClick="fwd()">
</div>
</div>
gary.addEventListener('contextmenu',gallery);
功能画廊(e){
e、 预防默认值();
var-reh=e.clientY;
var-rey=e.clientX;
var cnx=conxm.clientHeight;
var cxm=conxm.clientWidth;
var gig=窗内高度;
var fgi=window.innerWidth;
如果((reh+cnx)>=gig&&(rey+cxm)=gig&&(rey+cxm)>=fgi){
conxm.style.top=((gigcnx)-10)+“px”;
conxm.style.left=((FGICXM)-10)+“px”;
}
否则{
conxm.style.top=reh+“px”;
conxm.style.left=rey+“px”;
}
conxm.style.display=“block”;
}
编辑:如果为div定义了宽度和高度,则该函数可以工作,但我需要可变宽度。最后我只是移动了一下
conxm.style.display="block";
以前
e.preventDefault();
现在它工作得很好 你能创作一首曲子吗?这是小提琴: