$('#my_div').height('50%')
задает высоту, но как вы можете получить высоту div div в процентах?
Может ли jquery вернуть высоту элемента в процентах?
Ответ 1
вы можете преобразовать высоту в px и преобразовать их в percenatge
1em = 12pt = 16px = 100%
Ответ 2
Вы можете использовать .height()
, который возвращает только число (т.е. без символа единицы). Идеально подходит для процента, который, конечно, не нуждается в единицах. Из документов:
Метод
.height()
рекомендуется, когда элемент высота должна использоваться в математический расчет.
Итак, вы можете попробовать что-то вроде этого:
var height_pct = Math.round(
$('#my_div').height() /
$('#my_div').parent().height() * 100
);
Ответ 3
Так просто $ ( "# Eleid" ) [0].style.width
Ответ 4
Попробуйте скрыть элемент, вы получите его процентное значение.
<div id="a" style ="height: 300px; background: green; display: none;">
a
<div id="b" style ="height: 10%; background: blueviolet;">
b
</div>
<div id="c" style ="height: 20%; background: cornflowerblue;">
c
</div>
</div>
<script>
$(document).ready(function(){
// height outside of event
$("#a").append($("#a").height());
$("#b").append($("#b").height());
$("#c").append($("#c").height());
// height inside of event
$("*").click(function(){
$("#a").css("display", "block");
$("#a").append($("#a").height());
$("#b").append($("#b").height());
$("#c").append($("#c").height());
})
})
</script>
Обратите внимание, что значение внутри функции события отличается.
Примечания к добавлению:
Значение, указанное параметром.height(), не гарантируется, когда элемент или его родитель скрыты. Чтобы получить точное значение, убедитесь, что элемент виден перед использованием.height(). jQuery попытается временно показать, а затем снова скрыть элемент, чтобы измерить его размеры, но это ненадежно и (даже при точном) может значительно повлиять на производительность страницы. Эта функция измерения показа и подтверждения может быть удалена в будущей версии jQuery.
Источник: высота jQuery()
Ответ 5
Основываясь на другом ответе, для фиксированного элемента типа "панель", вот что у меня сработало:
var h = Math.round(
$('#my_div').height() /
$(window).height() * 100
);