好的,這是我的問題。 使用jQuery UI位置。可以將元素相對於屏幕上的另一個元素進行定位。它會在放置在屏幕上的元素上設置左側和頂部CSS屬性。jQuery UI設置「right」和「bottom」而不是「left」和「top」的位置
我想要做的不是設置左側和頂部,而是想設置右側和底部,以便定位元素增長或縮小時,它會沿正確的方向增長/收縮。
讓我進入細節。 好吧,我想要的是,如果一個元素的位置是正確的,那麼我想設置right
css屬性而不是left
,如果一個元素位於其底部,那麼我想設置bottom
而不是top
。我可以使用jQuery UI Position的using
屬性來做到這一點,但碰到碰撞檢測問題。如果碰撞檢測設置爲flip
並且元素翻轉了,我想檢測這個並確定是否需要設置right
而不是left
和bottom
而不是top
。查看下面的代碼以更好地瞭解我正在嘗試做什麼。
$('#somediv').position({
my: 'right bottom',
at: 'right top',
of: $('#someotherdiv'),
offset: '0 5',
collision: 'flip flip',
using: function(pos) {
// Figure out the right and bottom css properties
var right = $(window).width() - pos.left - $(this).outerWidth(true);
var bottom = $(window).height() - pos.top - $(this).outerHeight(true);
// Position the element so that right and bottom are set.
$(this).css({left: '', right: right, top: '', bottom: bottom});
}
});
這很好用,除非div從碰撞檢測中翻轉過來。如果水平翻轉,我想設置left
而不是right
,如果垂直翻轉,我想設置top
而不是bottom
。
理想的解決方案是,如果有一種方法可以告訴(在using
函數中)元素是否翻轉以及朝哪個方向。所以,任何人有任何想法來弄清楚是否使用碰撞檢測翻轉了一個元素?
任何人?我是否清楚問題? – 2012-03-02 07:53:34