2012-02-27 19 views
2

要素にposition:relativeのラッパーを無視させることができるかどうかを知りたいだけです。要素を無視することは可能ですか?relative?

jQueryを使用して位置を絶対配置する要素を作成していますが、ユーザーが要素をどのように配置していても動作する必要があります。

私はBODYタグに置くことができません。なぜなら、それらを入力フィールドと共にラッパーの中に置く必要があるからです。

アイデア?

更新日: 回避方法が見つかりました。私は、文書の位置を取得しているjQueryの.offset()を使用していました。 親の内部で要素の位置を取得している.position()に編集しました。今すぐ動作します

+3

いいえ、私はそうは思わない。一般的な回避策は、jQueryを使用して、要素をラッパーの外の場所に切り取って貼り付けます。 –

+0

要素と入力フィールドを含む本文にラッパーを追加しないでください。私は何かを逃していない限り? – Alex

+0

@Alex Thomas:ラッパーは 'position:relative'を持ち、要素を持って移動しても構いません。 – BoltClock

答えて

0

多分私は何かが不足しているかもしれませんが、あなたはresizeイベントを監視してから要素を再配置することができます。 http://api.jquery.com/resize/

+0

これは、サイズ変更とは関係がありません。問題は、私はフォームがあり、内部には入力フィールドがあるということです。ユーザーが入力フィールドをクリックすると、入力フィールドにエラーボックスが表示されます。位置は入力ボックスの位置で計算され、次にコーナーに配置されます。しかし、ユーザーが相対的な所有権を持つフォームを持っている場合、エラーボックスは間違って配置されています。 – Lasse

+2

@QuakeDK:質問にあなたのコードを追加できますか? – BoltClock

+0

@BoltClock:私はQuakeDKに同意します。サイトやコードのサンプルを見る必要があると思います。 – Alex

0

しかしが何の位置がなかったかのように、左と上の属性を設定するには、次のようになります。

$(function() { 
    $('.body_pos').each(function() { 
    var offset = $(this).offset(); 
    $(this).css({ 
     left : '-='+offset.left, 
     top : '-='+offset.top 
    }); 
    }); 
}); 

例:あなたは左の設定した相対親が及び追加は、クラス「body_pos」と言うことができます:50px、要素はドキュメント内で左に100px、次に左に-50pxの位置に配置されます。

マージン:0のオートボックス内に配置されていない限り、希望の効果を与える必要があります。ウィンドウはサイズ変更されています。

+0

これはあなたのメンタルだが、私は位置を削除しようとしているかどうかわからない:絶対、左のみ、トップを使用するが、それは要素に影響を与えるか? – Lasse

+0

これは賢明な回避策ですが、親コンテナの 'overflow'が' hidden'に設定されていない場合にのみ機能します。 –

+0

'offset()'を提案しようとしていました。は 'position()'がで、要素はオーバーフローしていますか? @Pekka – Alex

関連する問題