Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как мне в цикле увеличить margin-left на 20% (https://javascript.ru/forum/events/71870-kak-mne-v-cikle-uvelichit-margin-left-na-20%25.html)

Sinevik 18.12.2017 23:02

Как мне в цикле увеличить margin-left на 20%
 
Помогите пожалуйста
var contr = document.getElementsByTagName("article");
  var but = document.getElementById("but");
  for(var i = 0; i < contr.length; i++){
    contr[i].style.marginLeft =+20 + "%";
    }


Не работает вот эта штука. Она просто у всех 20 ставит. Подскажите как пройти циклом и увеличит исходное на 20

Aetae 18.12.2017 23:10

Цитата:

Сообщение от Sinevik (Сообщение 473202)
Помогите пожалуйста
var contr = document.getElementsByTagName("article");
  var but = document.getElementById("but");
  for(var i = 0; i < contr.length; i++){
    contr[i].style.marginLeft =+20 + "%";
    }


Не работает вот эта штука. Она просто у всех 20 ставит. Подскажите как пройти циклом и увеличит исходное на 20

20% от чего? От исходной цифры? От ширины окна? От ширины элемета? calc(20% + n)?

Sinevik 18.12.2017 23:17

Ну у меня стоит margin-left: 20% мне надо сделать 40%
Соответственно у кого стоит margin-left: 40% надо сделать 60%

Aetae 18.12.2017 23:28

Если прям в атриубуте style, то всё просто:
contr[i].style.marginLeft = +contr[i].style.marginLeft + 20 + "%";
Если же где-то в стилях, то всё становится веселей.

Sinevik 18.12.2017 23:38

Ну вот мне надо что бы все блоки не съехались в один на 20%, а уехали каждый на 20%
https://jsfiddle.net/8wgwqsjh/

Пытаюсь тут сам слайдер написать

Там на кнопку нажать надо

Aetae 19.12.2017 00:39

Тогда всё печально, потому как getComputedStyle возвращает конкретные вычисленные пиксели, а шариться по подключённым стилям - гиблое дело.
Остаётся разве что использовать позиционирование:
var contr = document.getElementsByTagName("article");
  var but = document.getElementById("but");
  but.onclick= function(){
    for(var i = 0; i < contr.length; i++){
    contr[i].style.position = "relative";
    contr[i].style.left = "20%";
    }
  }


Часовой пояс GMT +3, время: 09:15.