Приписывание интервалов значений к ключам в массиве
Всем привет! Возникла задача: я беру три элемента при помощи document.getElementsByClassName('element') в этом поле допустим находится 3 элемента. Мне каждому из них нужно приписать маржин лефт с интервалом в 50 пикселей как в отрицательном значении так и в положительном. Тобишь. Если элементов в массиве будет 3 то будет так : элемент 1: маржин лефт -50. Элемент 2: маржин лефт 0, элемент 3: маржин - лефт 50. Как это правильней сделать, наведите на решение, джаваскрипт сенсеи
|
|
Цитата:
|
var mgr = -50,
els = document.getElementsByClassName('element');
[].forEach.call(els, function(el,i){
if(i) mgr+=50;
el.style.marginLeft = mgr+'px';
});
|
Цитата:
если 7 то : -150 -100 -50 0 50 100 150 думаю принцип понятен, я попытаюсь сделать этот кусок кода сам но на всякий случай попрошу помощи здесь =) |
Цитата:
var els = document.getElementsByClassName('element');
var mgr = (els.length - Math.ceil(els.length / 2)) * -50;
[].forEach.call(els, function(el,i){
if(i) mgr+=50;
el.style.marginLeft = mgr+'px';
});
Исходил из того, что элементов нечётное количество (как в примере), центр на нуле. |
drakonolom,
четное количество может быть? |
Цитата:
|
Что-то мне кажется, что рони прав (пост 2)
<style>
.space-between {
display: flex;
margin-bottom: 10px;
justify-content: space-between;
}
</style>
<section class="container">
<div>Другой элемент</div>
<section class="space-between">
<div>1</div><div>2</div><div>3</div>
</section>
<div>Еще другой элемент</div>
<section class="space-between">
<div>11</div><div>22</div><div>33</div><div>44</div>
</section>
<div>Совсем другой элемент</div>
</section>
|
drakonolom,
Если четные то по сотке? |
| Часовой пояс GMT +3, время: 10:21. |