Как добавить инкрементные значения в атрибут css с помощью Jquery
В основном у меня есть серия DIV с различными значениями "top", "bottom" и "padding". "Нижний" и "отступ" я хочу 0 или исключить, но для "верхнего" мне нужно, чтобы каждый последующий DIV увеличивался на 10px, начиная с 0. Так что в основном получилось что-то вроде этого:
<div class="someclass" style="position:absolute;top:10px;bottom:5;padding:4;"> </div>
<div class="someclass" style="position:absolute;top:15px;bottom:10;padding:2;"> </div>
<div class="someclass" style="position:absolute;top:5px;bottom:5;padding:6;"> </div>
В ЭТОМ:
<div class="someclass" style="position:absolute;top:0px;bottom:0;padding:0;"> </div>
<div class="someclass" style="position:absolute;top:10px;bottom:0;padding:0;"> </div>
<div class="someclass" style="position:absolute;top:20px;bottom:0;padding:0;"> </div>
Не совсем уверен, что лучший способ обнулить другие свойства, но самая большая проблема заключалась в выяснении постепенного увеличения. Вот скрипка, с которой я работал, но она рекламирует +10 ко всем div вместо увеличения. скрипка
3 ответа
Решение
Может быть, что-то вроде этого:
$('.someclass').each(function(index, value) {
$(this).css({
'top': (index * 10) + 'px',
'bottom': 0,
'padding': 0
});
});
Попробуй это:
var x = document.getElementsByClassName("someClass");
for(var i=0; i<x.length; i++){
x[i].style.top = (i*10) + 'px';
};
Если я правильно понимаю ожидаемые результаты, вы можете использовать индекс элемента для увеличения на:
$('.someclass').css('top', function(i, v) {
return i*10 ;
});