У меня есть таблица со строками, и мне нужно вычислить высоту любой строки.
var height = $('table').find('tbody > tr').height();
console.log(height);
В моем конкретном случае это дает 18
. Итак, я использую это для вычисления индекса внутри прокручиваемого div. Это index = scrollTop / rowHeight
, но что-то не так.
После дальнейшего расследования я обнаружил, что сообщаемая высота, в данном случае IE9, на самом деле равна 18.4
. Используя это значение, расчет работает.
Чего я не могу понять, так это как получить это значение. Все методы, которые я пробовал использовать jQuery, innerHeight
, outerHeight
(включая и без полей) и height
. Все они возвращают 18
целое число !? Высота таблицы над числом строк является приемлемым приближением (18.40625
), но это значение вызывает незначительные ошибки округления. Я пробовал round
, floor
и ceil
безрезультатно.
Единственный способ, которым мне до сих пор удавалось заставить это работать, состоял в том, чтобы установить высоту каждой строки к некоторому целочисленному значению. Но я действительно хотел покончить с этим, и я должен иметь возможность вычислять высоту строки, чтобы она могла принимать любое значение, если оно постоянное.
Это 18.4
- это вычисленное line-height
, и его преобразование в целое число устраняет проблему, но я не хочу иметь дело с пикселями устройства. Я не понимаю, почему нет способа получить фактическое значение высоты, как показано инструментами разработчика (согласно документации MSDN это offsetHeight
, но это свойство является целым числом, что просто неверно).
Мне нужна помощь.