现在我在脑海中摆弄一个想法,并且一直在寻找如何解决我的特定问题的答案,因为我过去也无法做到。
我想要做的是采用 2+ 个元素。一个主要包装元素和该包装内的 1 个或多个元素。我想要做的是当包装器内元素的右外边缘与包装器左内边缘相遇时,我想触发一个函数。所以我可以根据我的整体想法做几件事。然而,找到那些边缘或实际上任何边缘对我来说一直是个问题。我敢肯定它是可能的,但问题是如何。
现在我在脑海中摆弄一个想法,并且一直在寻找如何解决我的特定问题的答案,因为我过去也无法做到。
我想要做的是采用 2+ 个元素。一个主要包装元素和该包装内的 1 个或多个元素。我想要做的是当包装器内元素的右外边缘与包装器左内边缘相遇时,我想触发一个函数。所以我可以根据我的整体想法做几件事。然而,找到那些边缘或实际上任何边缘对我来说一直是个问题。我敢肯定它是可能的,但问题是如何。
您的回答是用来position().left
获取父元素中元素的正确位置。
var boxPosX = $('#box').position().left;
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() ;
}
});
您可以使用 jQuery 的偏移方法:http ://api.jquery.com/offset/ 。您需要计算出填充和边距以添加到其中,但我相信它会满足您的需求。
根据http://api.jquery.com/position/你需要 .position 方法。
“.position() 方法允许我们检索元素相对于偏移父元素的当前位置。将此与 .offset() 进行对比,后者检索相对于文档的当前位置。当将新元素定位在另一个元素附近时在同一个包含 DOM 元素中,.position() 更有用。
返回一个包含属性 top 和 left 的对象。"
希望这可以帮助。