Ответ 1
Если у вас уже есть ссылка на элемент DOM, element.getBoundingClientRect
получит нужные вам значения.
Метод существует с Internet Explorer 4, поэтому он безопасен для использования везде. Однако атрибуты width
и height
существуют только в IE9+. Вы должны рассчитать их, если вы поддерживаете IE8 и ниже:
var rect = $("#a")[0].getBoundingClientRect();
var width;
if (rect.width) {
// `width` is available for IE9+
width = rect.width;
} else {
// Calculate width for IE8 and below
width = rect.right - rect.left;
}
getBoundingClientRect
на 70% быстрее, чем window.getComputedStyle
в Chrome 28, и различия в Firefox больше: http://jsperf.com/getcomputedstyle-vs-getboundingclientrect