jQuery有height() en width()函数,返回高度或宽度像素为整数…

我怎么能得到一个填充或边缘值的元素像素和整数使用jQuery?

我的第一个想法是:

var padding = parseInt(jQuery("myId").css("padding-top"));

但是,如果填充以ems为例,我如何才能得到以像素为单位的值?


查看由Chris Pebble建议的JSizes插件,我意识到我自己的版本是正确的:)。jQuery总是以像素为单位返回值,因此只需将其解析为整数就是解决方案。

感谢Chris Pebble和Ian Robinson


当前回答

解析int

parseInt(canvas.css("margin-left")); 

0px返回0

其他回答

这个简单的函数可以做到:

$.fn.pixels = function(property) {
    return parseInt(this.css(property).slice(0,-2));
};

用法:

var padding = $('#myId').pixels('paddingTop');

下面是你如何获得周围的尺寸:

var elem = $('#myId');

var marginTopBottom  = elem.outerHeight(true) - elem.outerHeight();
var marginLeftRight  = elem.outerWidth(true)  - elem.outerWidth();

var borderTopBottom  = elem.outerHeight() - elem.innerHeight();
var borderLeftRight  = elem.outerWidth()  - elem.innerWidth();

var paddingTopBottom  = elem.innerHeight() - elem.height();
var paddingLeftRight  = elem.innerWidth()  - elem.width();

注意,每个变量,例如paddingTopBottom,包含元素两边边距的和;例如,paddingTopBottom == paddingTop + paddingBottom。我想知道有没有办法把它们分开。当然,如果它们相等,你可以除以2:)

我可能使用github.com/bramstein/jsizes jquery插件填充和边缘在非常舒适的方式,谢谢…

请不要仅仅为了做一些本地已经可用的东西而去加载另一个库!

jQuery的.css()将%'s和em's转换为它们开始时的等效像素,parseInt()将从返回字符串的末尾删除'px'并将其转换为整数:

http://jsfiddle.net/BXnXJ/

$(document).ready(function () {
    var $h1 = $('h1');
    console.log($h1);
    $h1.after($('<div>Padding-top: ' + parseInt($h1.css('padding-top')) + '</div>'));
    $h1.after($('<div>Margin-top: ' + parseInt($h1.css('margin-top')) + '</div>'));
});

不要使用字符串。替换(“px”、" "));

使用parseInt或parseFloat!