OK、ここに私の質問があります。 jQuery UIの位置を使用しています。要素を画面上の他の要素に関連して配置することは可能です。これは、配置されている要素にleftとtopのCSSプロパティを設定して、画面上に配置します。jQuery UI "left"と "top"の代わりに "right"と "bottom"を設定する位置
左と上を設定するのではなく、代わりに右と下を設定して、配置された要素が大きくなったり収縮したりすると、正しい方向に収縮します。
詳しくは、 私が欲しいのは、要素が正しく配置されている場合、left
の代わりにright
CSSプロパティを設定し、要素がその下部に配置されている場合はtop
の代わりにbottom
を設定したいと考えています。 jQuery UI Positionのusing
プロパティを使用してこれを行うことはできますが、衝突検出に問題があります。衝突検出がflip
に設定され、要素が反転した場合、これを検出して、left
の代わりにright
を、top
の代わりにbottom
を設定する必要があるかどうかを判断したいと思います。下のコードを調べて、私がしようとしていることのより良いアイデアを得てください。
$('#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が衝突検出から反転した場合を除いて、素晴らしいことです。水平方向に反転した場合は、right
の代わりにleft
を設定し、垂直に反転した場合はbottom
の代わりにtop
を設定します。
理想的な解決策は、(using
機能で)要素が反転されているかどうか、およびどの方向であるかを伝える方法があるかどうかです。だから、誰もが要素が衝突検出を使って反転されたかどうかを知るためのアイデアはありますか?
誰でも??質問を明確にしましたか? –