如何使用jQuery来确定div何时在右侧的视图之外



我有一个div,当它被聚焦时,它会显示在控件附近。最初,div在控件的左侧,生活很轻松。一个简单的if left < 0 { left = 0; }将使div保持在屏幕上。现在div需要在右边,我想不出类似的代码。此外,代码不仅需要确定它是否在屏幕右侧,还需要确定它是不是超过了包含div的(可能的)可滚动的可见性。我该如何做到这一点?假设可滚动的div(如果适用)可以用$('.PanelScroll')找到,我们可以调用需要放置的div elem

这是我想要的更简单的解决方案:

var ctrl = $('#<your control id>');         // This is the control that the div is display to the right of.
var elem = $('#<your element id>');         // This is the div that may be out of view.
var panel = $('#<your scrollable div id>');
var left = elem.position().left;
var right = left + elem.outerWidth();
if ((panel.length && (right > panel.innerWidth())) || (right > ($(window).width() + $(window).scrollLeft()))) {
    left = left - ctrl.outerWidth() - elem.outerWidth();
}
if (panel.length) {
    left += panel.scrollLeft();
}
elem.css('left', left);

最新更新