2

现在我在脑海中摆弄一个想法,并且一直在寻找如何解决我的特定问题的答案,因为我过去也无法做到。

我想要做的是采用 2+ 个元素。一个主要包装元素和该包装内的 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

您可以使用 jQuery 的偏移方法:http ://api.jquery.com/offset/ 。您需要计算出填充和边距以添加到其中,但我相信它会满足您的需求。

于 2012-07-01T21:27:21.163 回答
1

根据http://api.jquery.com/position/你需要 .position 方法。

“.position() 方法允许我们检索元素相对于偏移父元素的当前位置。将此与 .offset() 进行对比,后者检索相对于文档的当前位置。当将新元素定位在另一个元素附近时在同一个包含 DOM 元素中,.position() 更有用。

返回一个包含属性 top 和 left 的对象。"

希望这可以帮助。

于 2012-07-01T21:33:03.467 回答