添加javascript像素值?

时间:2012-02-17 17:53:13

标签: javascript jquery

javascript / jQuery中是否有一种方法可以使用值为“60px”和“40px”的两个变量并将它们组合在一起以获得“100px”?

或者在更一般的意义上,我正在尝试计算物体相对于其他物体的位置,如果我可以这样做,那将非常方便:

$('#object2').css('left', $('#object1').css('left')+'60px');

当然,这只是无效的“40px60px”。

5 个答案:

答案 0 :(得分:18)

从字符串中删除px,添加值,然后再添加px

  (parseInt("40px".replace(/px/,""))+60)+"px"

答案 1 :(得分:6)

可能最有效的方式是

parseInt("40px", 10) + parseInt("60px", 10) + "px"

parseInt调用中的10是必要的,以防止错误地计算在基数10之外的其他值。

答案 2 :(得分:4)

您正在寻找parseInt()功能。

var left1 = "40px";
var left2 = "60px";

// Add the integer values of the left values together
var leftTotal = parseInt( left1, 10 ) + parseInt( left2, 10 ) + "px";

同样值得研究的是parseFloat()方法。它与parseInt()的作用相同,但适用于带小数的数字(也称为浮点值)。

答案 3 :(得分:1)

var shiftedRight = (parseFloat($('#object1').css('left')) + 60) + 'px';
$('#object2').css('left', shiftedRight);

parseFloat将仅解析字符串的前缀。

答案 4 :(得分:0)

你可以通过解析对象的css.left值来做到这一点,有点像这样:

$('#object2').css('left', (parseInt($('#object1').css('left')) + 60) + 'px');

但是你应该记住,css.left值可能不是px而是%em等等。所以干净的方式是使用{{3因为这会给你正确的像素值。

$('#object2').css('left', ($('#object1').offset().left + 60) + 'px');