jQuery / JavaScript如何找到元素的左内边缘

时间:2012-07-01 21:23:10

标签: javascript jquery html css

现在我正在脑子里想着一个想法,一直在寻找如何解决我的特定问题的答案,因为我过去也做不到。

我想做的是采取2+元素。一个主要的包装元素和该包装器中的一个或多个元素。我想要做的是当包装器中的元素的右外边缘遇到包装器左内边缘时,我想要触发一个函数。所以我可以根据我的整体想法做一些事情。然而,一般来说,找到那些边缘或任何边缘对我来说一直是个问题。我确信它可能,但问题是怎么回事。

3 个答案:

答案 0 :(得分:2)

您回答的是使用position().left来获取父元素中元素的正确位置。

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

jsBin demo

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() ;
  }      
});

答案 1 :(得分:1)

您可以使用jQuery的偏移方法:http://api.jquery.com/offset/。你需要计算填充和边距以加入它,但我相信它会做你想要的。

答案 2 :(得分:1)

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

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

返回包含top和left属性的对象。“

希望这有帮助。