Как увеличить/уменьшить текущую маржу на число с помощью jquery?

Учитывая элемент с неизвестным margin-left, как увеличить его margin-left на число, скажем, 100px?

Например:

Предполагая, что исходный margin-left равен 100px

ожидаемый результат равен 100px + 100px, и, наконец, 200px.

Ответы

Ответ 1

$('#element-id').css('margin-left', function (index, curValue) {
    return parseInt(curValue, 10) + 100 + 'px';
});

curValue будет включать в себя 'px' в конце, поэтому вы получите результат NaN или 100px100px в качестве результата без использования parseInt.

Ответ 2

Быстрый/простой способ сделать это:

$('#IDHere').animate({marginLeft: '+=100px'}, 0);

Вот краткий пример этого. 0 делает это в одном кадре, если вы действительно хотите его оживить, измените 0 на количество миллисекунд, которое вы хотите, like это.

Ответ 3

Вы можете просто достичь этого, используя только .css(см. пример ниже)

$('#element-id').css('margin-left', '+=100px');

Ответ 4

$("p").css({marginLeft: function(index, value) {
    return parseFloat(value) + 100;
}});