0

テーブルとdivがあり、position()を使用してテーブルセルを基準にしてdivを配置したいと思います。

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

td1がウィンドウ内にある場合(水平スクロールなし)、divは正しく配置されます。ただし、テーブルがウィンドウよりも広い場合、divは間違って配置されます(左に押されます)-position()。topは正しいですが、position()。leftは、divが完全にウィンドウの内側になるようになっています。幅が十分に大きい(ウィンドウよりも広い)div内にテーブルを配置しようとしましたが、それでも同じ動作が見られます。

ウィンドウの外側にある要素に対してもdivを正しく配置する方法に関する提案はありますか?

4

1 に答える 1

0

jQuery UIでは、collisionプロパティを使用して、ウィンドウ内に配置された要素を「適合」させることしかできないようです。.cssとを使用するだけで、jQueryUIがなくても同じ機能を使用できます.offset。これがデモです:http://jsfiddle.net/imsky/XtV4K/

divを表示し続けるjQueryUIバージョン(正確な場所ではありませんが):

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

必要な場所にdivを正確に保持するjQueryバージョン:

 $(this).css({
            left: $("#td2").offset().left + "px",
            top: $("#td2").offset().top + 5 + "px"
        });
于 2012-05-25T16:35:42.660 に答える