Добавление пикселей в свойство jquery.css() left
Это мой код:
var lef=$(this).css("left");
var top=$(this).css("top");
alert(lef);
$(this).after("<div class='edit cancel' style='position:absolute;top:"+top+";left:"+lef+"'>Cancel</div>");
Теперь утверждение var lef=$(this).css("left") + 150
, похоже, не работает. Я хочу получить свойство left и добавить к нему 150 пикселей
Как я могу это сделать?
Спасибо.
Ответы
Ответ 1
Теперь оператор var lef = $(this).css( "left" ) + 150, похоже, не работает
Причина, по которой не работает, заключается в том, что вы должны добавить px
в конце свойств top
и left
внутри вашего .after()
.
Вам также нужно использовать parseInt
, потому что .css('left')
вернет "??px"
.
var lef = parseInt($(this).css("left")) + 150; // add 150
var top = parseInt($(this).css("top")); //also parseInt top for consistency
alert(lef);
$(this).after("<div class='edit cancel' style='position:absolute;top:"+top+"px;left:"+lef+"px'>Cancel</div>");
// ^^px ^^px
Ответ 2
Как и в jQuery 1.6, вы можете сделать это проще всего, просто добавив или вычитая из текущего значения. Например, чтобы добавить 150px:
$(this).css("left", "+=150")
http://api.jquery.com/css/#css-properties
Как и в jQuery 1.6,.css() принимает относительные значения, аналогичные .animate(). Относительные значения - это строка, начинающаяся с + = или - = до увеличивать или уменьшать текущее значение. Например, если элемент padding-left - 10px,.css( "padding-left", "+ = 15" ) приведет к общее отступы слева от 25px.
Ответ 3
Я упростил ответ тридцать.
Вы можете использовать эту функцию jQuery для любого свойства, которое хотите добавить пиксели.
jQuery.fn.addPixelsTo = function(property, pxls) {
return $(this[0]).css(property, (parseInt($(this[0]).css(property).substr(0,2))+pxls)+'px');
}
Пример:
$('#element').addPixelsTo('border-top-width', 30);
Ответ 4
попробуйте это
var WinW=jQuery(window).width();
var lft =parseInt(WinW/2);
jQuery(".div").css("left" , (lft));
он поместит div в центр страницы, тогда он будет работать нормально....
Ответ 5
может попробовать
$(this).css("left", function(){
return ($(this).css("left")+150);
});
для любой комплексной модификации, а также
Ответ 6
var lef=$(this).css("left")
Эта строка возвращает строку, с которой вы связываете 150
с оператором +
. Вам нужно сначала преобразовать строку $(this).css("left")
в число.
A jsfiddle, чтобы доказать свою точку зрения.
Итак, вы можете сделать это следующим образом -
var lef = partInt($(this).css("left")) + 150;
Теперь вы получите добавление вместо конкатенации строк.