Может ли jquery вернуть высоту элемента в процентах?

$('#my_div').height('50%') задает высоту, но как вы можете получить высоту div div в процентах?

Ответ 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
    );