jQuery: переместить элемент по относительному значению - PullRequest
10 голосов
/ 27 ноября 2009

(имеется в виду значение элемента left): какой самый простой способ переместить элемент - например, 10 пикселей влево (от текущей позиции)?

ТНХ

Ответы [ 5 ]

8 голосов
/ 27 ноября 2009

Вот краткий пример использования jQuery:

$("#el").css({
    left: $("#el").position().left - 10 + "px"
});

Примечание: элемент, который вы хотите переместить, должен располагаться абсолютно или относительно.

6 голосов
/ 27 ноября 2009

Предполагается, что ваш элемент имеет идентификатор 'myElement':

$('#myElement').css(
{
  'position': 'relative',
  'left': '-10px'
});
5 голосов
/ 27 ноября 2009

Может случиться так, что jQuery будет лишним и установит поле margin-left: -10px поможет.

Вы можете получить смещение элемента () относительно документа: http://docs.jquery.com/CSS/offset

Это даст вам левую, верхнюю и т. Д.

Тогда вам, возможно, придется позиционировать элемент, используя css следующим образом.

 subMenu.css({
            position: 'absolute',
            zIndex: 5000,
            left: left,
            top: top
        });
3 голосов
/ 18 июня 2015

Начиная с 1.6 вы можете использовать относительные значения в css(), чтобы вы могли использовать это:

$('#myElement).css( "left", "+=15" );

Пока элемент уже имеет определенное значение для left и абсолютно позиционирован.

Ссылка: http://api.jquery.com/css/

0 голосов
/ 25 октября 2014

Поскольку ни один из других ответов не является истинным решением в стиле jQuery, я воскрешу эту старую проблему.

Это решение может перемещать ВСЕ выбранные элементы на относительное значение:

$('.selected').each(function() {
    $(this).css({ left: $(this).position().left - 10 });
});
...