Горизонтальное выравнивание контента с JavaScript на нескольких картах - PullRequest
0 голосов
/ 04 февраля 2020

В настоящее время я пытаюсь найти решение для выравнивания указанного элемента между несколькими картами. Наименьшее смещение (означает положение) должно быть основой для других «элементов». Таким образом выравниваются по встроенным стилям затем.

let cards = document.getElementsByClassName("card");
const arr = [];
var x; //8px
const yPosC = [];

for (let i = 0; i < cards.length; i++) {
  cards[i].style.backgroundColor = "yellow";
  let yPosCard = cards[i].offsetTop;
  let rating = cards[i].querySelectorAll(".x");
  let yPosRating = rating[0].offsetTop;
  yPosC.push([yPosCard, yPosRating]);
  if (yPosCard != x) {
    x = cards[i].offsetTop;
  } else {
    x = cards[0].offsetTop;
  }
}

yPosC.forEach(function(key) {
  //console.dir(key[0]); // Rows
  //console.dir(key[1]); // Columns
  
  if (x === key[0]) {
    // Match values for first line
    console.log("woot");
  }
});
body {
  background: lightgrey;
}
.grid-container {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-template-rows: ;
  grid-template-areas: ". . . .";
  grid-gap: 1rem;
}
.card {
  background: #fafafa;
  padding: 1rem;
}
.x {
  background: red;
  margin-top: 30px;
}
.x.y {
  background: green;
  margin-top: 40px;
}
<div class="grid-container">
  <div class="card">One
    <div class="x">Line</div>
  </div>

  <div class="card">two
    <div class="x">Line</div>
  </div>

  <div class="card">three
    <div class="x">Line</div>
  </div>

  <div class="card">four
    <div class="x y">Line</div>
  </div>
  
    <div class="card">
    <div class="x">Wrapped</div>
  </div>
</div>

Может быть, мне просто нужен первый старт? Я попытался построить массивы из смещения Top, заданного самими картами и «элементом». Но что происходит потом? Повозиться и проиллюстрировать «задачу».

Я очень ценю вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...