Javascript 将行中每列的位置作为负边距应用

Javascript 将行中每列的位置作为负边距应用,javascript,jquery,position,Javascript,Jquery,Position,我需要首先得到每行中每一列的左位置,然后将其作为负边距应用于列中的div。我有一些硬编码javascript,但我知道有一个更优雅的解决方案 HTML: <div class="row"> <div class="column column_1"><!-- Content --></div> <div class="column column_2"><!-- Content --></div> <

我需要首先得到每行中每一列的左位置,然后将其作为负边距应用于列中的div。我有一些硬编码javascript,但我知道有一个更优雅的解决方案

HTML:

<div class="row">
  <div class="column column_1"><!-- Content --></div>
  <div class="column column_2"><!-- Content --></div>
  <div class="column column_3"><!-- Content --></div>
  <div class="column column_4"><!-- Content --></div>
</div>

你可以这样做:

$('.column').each(function(s, el) {
  $(el).find('.adjusted-div').eq(0).css('margin-left',-($(el).position().left));
});

在每个.column元素上循环,在其中查找调整后的div元素,然后将父元素的左位置作为左边距应用于子元素。

请问每列中的左位置是否不同?我只是想想象一下,这可能会是什么样子,以想出最佳的解决方案。这是每个不同的,是的。这是完美的作品,谢谢!“s”在函数定义中到底做了什么,为什么eq(0)是必要的?s只是一个数字索引,你实际上不需要它(或者el,你可以使用$(这个),我总是习惯性地添加它。eq(0)可能不是必需的,这取决于您的HTML结构(例如,您是否有多个与类匹配的div,以及您是否希望该类应用于所有div)-如果这些限制不适用于您的情况,请随意删除它:)明白了。感谢您的澄清:)
$('.column').each(function(s, el) {
  $(el).find('.adjusted-div').eq(0).css('margin-left',-($(el).position().left));
});