Приращение свойства css top с помощью jquery
У меня есть следующий div:
<div id="new" style="position: absolute; z-index: 100; top: 210px; width: 195px..
Каков наилучший способ увеличить свойство top
при возникновении события?
Обратите внимание, что я пробовал: $('#new').css('top')+10
, но проблема в том, что .css
возвращает строку.
Ответы
Ответ 1
Вы можете использовать parseFloat
функцию, чтобы получить только начальную числовую часть и преобразовать ее из строки в число. Например:
var n = $('#new');
n.css('top', (parseFloat(n.css('top')) + 10) + 'px');
В качестве побочного примечания, если вы хотите сразу изменить позиции нескольких элементов, это может быть:
$('.someClass').css('top', function(i, v) {
return (parseFloat(v) + 10) + 'px';
});
Но если вы просто пытаетесь анимировать элемент со временем, посмотрите на метод jQuery .animate
.
Ответ 2
Самый простой способ - использовать оператор +=
:
$( '#new' ).css( 'top', '+=10px' );
Ответ 3
var el = $('#new');
el.css('top', (parseInt(el.css('top'), 10) + 10) + 'px');
Ответ 4
Я бы сказал, создайте переменную, увеличьте переменную, а затем reset свойство, используя новое значение, например
var topProperty = 0; //You can also populate this variable with the current value.
то в событии click
{
topProperty += 10;
$('#new').css('top', topProperty + 'px');
}
Ответ 5
var New = $("#new");
function onEvent()
{
New.css("top", parseFloat(New.css("top")) + 10 + "px");
}
добавив параметр seconds, чтобы css установил свойство.