2

今、私は頭の中でアイデアをいじっていて、過去にもできなかったので、私の特定の質問に取り組む方法の答えを探しています.

私がやりたいのは、2つ以上の要素を取ることです。1 つのメイン ラッパー要素と、そのラッパー内の 1 つ以上の要素。私がしたいのは、ラッパー内の要素の右外側の端がラッパーの左内側の端と出会うときに、関数を起動したいということです。そのため、私が持っている全体的なアイデアに基づいて、いくつかのことを行うことができます. しかし、それらのエッジまたは実際に一般的なエッジを見つけることは、私にとって常に問題でした。可能だと確信していますが、問題はどうですか。

4

3 に答える 3

2

あなたの答えはposition().left、親要素内の要素の正しい位置を取得するために使用することです。

var boxPosX = $('#box').position().left;

jsBin デモ

function custom(){
  $('#wrapper').css({background:'yellow'}).text('TOUCHDOWN!'); 
}

$(window).resize(function(){     
  var wrapperW = $('#wrapper').outerWidth(true);
  var boxW = $('#box').width();

  var boxPosX = $('#box').position().left;

  var touched = wrapperW - (boxW+boxPosX);

  if( touched <= 0 ){
     custom() ;
  }      
});
于 2012-07-01T21:38:49.240 に答える
1

http://api.jquery.com/position/によると、.positionメソッドが必要になります。

「.position()メソッドを使用すると、オフセットされた親に対する要素の現在の位置を取得できます。これを、ドキュメントに対する現在の位置を取得する.offset()と比較してください。新しい要素を別の要素の近くに配置する場合同じ包含DOM要素内では、.position()の方が便利です。

上と左のプロパティを含むオブジェクトを返します。」

お役に立てれば。

于 2012-07-01T21:33:03.467 に答える
1

jQueryのoffsetメソッドを使用できます:http://api.jquery.com/offset/。あなたはそれに追加するためにパディングとマージンを計算する必要があるでしょう、しかしそれはあなたが望むことをするだろうと私は信じています。

于 2012-07-01T21:27:21.163 に答える