Javascript Popover的位置取决于可用空间。
请看附件中的图片 正如你所看到的,我正在展示一件府绸。基本上,我想根据可用空间(左或右)来更改popover的位置。现在它超出了图像的范围 这是一个奇特的盒子(iframe) 使用此代码显示popoverJavascript Popover的位置取决于可用空间。,javascript,css,iframe,fancybox-2,Javascript,Css,Iframe,Fancybox 2,请看附件中的图片 正如你所看到的,我正在展示一件府绸。基本上,我想根据可用空间(左或右)来更改popover的位置。现在它超出了图像的范围 这是一个奇特的盒子(iframe) 使用此代码显示popover // Position and show the message. this.message .css({ left: (tPosition.left + "px"), top: ((
// Position and show the message.
this.message
.css({
left: (tPosition.left + "px"),
top: ((tPosition.top + t.outerHeight()) + "px")
})
.show();
我会这样做:
this.message
.css({
left : function () {
if ( tPosition.left + $(this).width() >= $(this).parent().width() ) {
return $(this).parent().width() - $(this).width();
}
else {
return tposition.left;
}
},
top : function () {
if ( tPosition.top + $(this).height() > $(this).parent().height() ) {
return $(this).parent().height() - $(this).height();
}
else {
return tposition.top;
}
}
});
基本上,您需要检查弹出窗口是否会超出包含框的边界,然后才能显示它并进行适当调整。在水平轴上,这与确保鼠标位置x+弹出窗口的宽度不大于父容器的宽度一样简单。在垂直轴上,您希望确保鼠标位置y+弹出高度不大于父容器高度。对于确切位置仍有一些问题,需要进行一些修改,但您的答案似乎有效,因此现在我将给出+1的答案。什么不起作用?如果您将边距应用于弹出元素,那么这将导致混乱。改用jQuery的outerHeight/Width()函数。