将每列的位置连续应用为负边距

时间:2017-11-07 16:41:53

标签: javascript jquery position

我需要首先获取每行中每列的左侧位置,然后将其作为负边距应用于列中的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>

我丑陋的JS:

var adjustMargin1 = jQuery(".column_1").position().left;
var adjustMargin2 = jQuery(".column_2").position().left;

ETC...

jQuery(".column_1 .adjusted-div").css("margin-left", -adjustMargin1);
jQuery(".column_2 .adjusted-div").css("margin-left", -adjustMargin2);

1 个答案:

答案 0 :(得分:1)

你可以这样做:

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

循环遍历每个.column元素,在其中找到adjust-div元素,然后将父节点左侧的位置作为边距 - 应用于子节点。