Jquery 确定列或行计数,列表元素作为内联块+;除法怪癖

Jquery 确定列或行计数,列表元素作为内联块+;除法怪癖,jquery,position,row,inline,Jquery,Position,Row,Inline,第一个问题。希望这不会重演 我有一个无序的缩略图列表,显示为内联块。所有图像都排列在一个漂亮、干净的网格中。但是,根据包装器的大小,列和行的数量可能会有所不同。我有数据会在悬停的图像上弹出(有延迟)。数据显示在缩略图的下方和右侧。但这意味着,如果图像位于最右侧,数据可以显示在页面外。 我想知道是否有一种方法可以通过jquery确定行数或列数,这样我就可以使两端的元素正确地显示细节 如果没有,我想我可以得到列表元素的外部宽度以及它们的边距和包装器的内部宽度。我将包装器除以列表元素,然后我将得到每行

第一个问题。希望这不会重演

我有一个无序的缩略图列表,显示为内联块。所有图像都排列在一个漂亮、干净的网格中。但是,根据包装器的大小,列和行的数量可能会有所不同。我有数据会在悬停的图像上弹出(有延迟)。数据显示在缩略图的下方和右侧。但这意味着,如果图像位于最右侧,数据可以显示在页面外。 我想知道是否有一种方法可以通过jquery确定行数或列数,这样我就可以使两端的元素正确地显示细节

如果没有,我想我可以得到列表元素的外部宽度以及它们的边距和包装器的内部宽度。我将包装器除以列表元素,然后我将得到每行列表元素的最大数量!然后,我可以通过各种javascript魔法在一行的边缘找到元素。然而,这并不总是有效的

例如,我以前的测试有150px的正方形缩略图,有2px的边距。包装的内部宽度为937。937 / 154 = 6.0844. 顺便说一下,这些是直接从jquery中得到的数字。但是,行是用5列呈现的。将我的边距降低到1,使我的宽度为152px,这样我可以每行获得6张图像(6.164)。我可以很好地为我的目标开发一个插件,但这个小怪癖困扰着我

有什么想法或建议吗


顺便说一句,这是在Chrome和Firefox上测试过的。

我想如果没有至少50名代表,我就无法发表评论。。。所以我就在这里发帖

正如我同意的Kevin B所说,一个可能的解决方案是找到作为弹出窗口父对象的obj的位置。将该位置与页面宽度进行比较,如果它小于弹出窗口的宽度,则将弹出窗口进一步向左移动以进行补偿。例如:

<style>
#parent { width: 200px; float:right }
#popup { width: 100px; }
</style>

<script>
    $(document).ready(function () {
        var parentRight = $("#parent").position().right;
        var windowRight = $(window).width();

        var width = windowRight - parentRight;
        if ($("#popup").width() < width) {
            //display popup
        }
        else {
            var offset = $("#popup").width() - width;
            var newLeft = $("#popup").position().left - offset;
            //display popup
            $("#popup").css('left', newLeft);
        }
    });
</script>

<div id="popup" />
<div id="parent" />

#父项{width:200px;float:right}
#弹出窗口{宽度:100px;}
$(文档).ready(函数(){
var parentRight=$(“#parent”).position().right;
var windowRight=$(window.width();
var width=windowRight-parentRight;
如果($(“#弹出”).width()
我会选择您要打开工具提示的位置,并根据它的宽度和窗口宽度计算它是否会离开屏幕。如果它会离开屏幕,请向左再打开一点,这样它就不会离开屏幕。非常感谢。我真的应该想到这个…爱这个!谢谢你们两位。这将是完美的。