jquery - 相对于窗口外元素的位置

时间:2012-05-25 15:59:57

标签: jquery jquery-ui position

我有一个表和一个div,我想使用position()来定位相对于表格单元格的div:

var td1= $('#td1');
$("#Div1").position( { of: td1, my: 'left top', at: 'left top', offset: '0 5'} );

如果td1在窗口内(没有水平滚动),则正确放置div。但是,如果表格比窗口宽,则div被错误地放置(向左推) - 位置()。顶部是正确的,但是position()。left使得div完全在窗口内。我试图将表放在一个宽度足够大的div(比窗口宽)中,但我仍然看到相同的行为。

关于如何正确地相对于窗口外的元素正确定位div的任何建议?

1 个答案:

答案 0 :(得分:0)

似乎jQuery UI只允许使用collision属性“匹配”窗口内的定位元素。只需使用.css.offset,您就可以在没有jQuery UI的情况下使用相同的功能。这是一个演示:http://jsfiddle.net/imsky/XtV4K/

jQuery UI版本将div保持在视图中(虽然不在确切的位置):

$(this).position({
            of: $("#td1"),
            my: "left top",
            at: "left top",
            offset: "0 5",
            collision: "fit"
        })

jQuery版本将div保持在所需的位置:

 $(this).css({
            left: $("#td2").offset().left + "px",
            top: $("#td2").offset().top + 5 + "px"
        });