现在我正在脑子里想着一个想法,一直在寻找如何解决我的特定问题的答案,因为我过去也做不到。
我想做的是采取2+元素。一个主要的包装元素和该包装器中的一个或多个元素。我想要做的是当包装器中的元素的右外边缘遇到包装器左内边缘时,我想要触发一个函数。所以我可以根据我的整体想法做一些事情。然而,一般来说,找到那些边缘或任何边缘对我来说一直是个问题。我确信它可能,但问题是怎么回事。
答案 0 :(得分:2)
您回答的是使用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() ;
}
});
答案 1 :(得分:1)
您可以使用jQuery的偏移方法:http://api.jquery.com/offset/。你需要计算填充和边距以加入它,但我相信它会做你想要的。
答案 2 :(得分:1)
根据http://api.jquery.com/position/,你需要.position方法。
“。position()方法允许我们检索元素相对于偏移父元素的当前位置。将此与.offset()进行对比,后者检索相对于文档的当前位置。另一个在同一个包含DOM元素的内容中,.position()更有用。
返回包含top和left属性的对象。“
希望这有帮助。