获取宽度或高度百分比而不是像素

时间:2014-04-23 06:26:44

标签: javascript jquery html css

我的元素的外部样式为height百分比。当我试图将高度保存为要使用的变量时,它会将其保存为pixels,有时甚至都没有。

HTML 例如:

<div id='firstDiv'></div>
 <div id='secondDiv'></div>

css代码

#firstDiv{
    width:50%;
    height:50%;
}
#secondDiv{
   width:20%;
   height:50%;
}

Jquery代码

$('div').each(function (){
   console.log($(this)[0].style.height);
}

我怎样才能将其作为%

5 个答案:

答案 0 :(得分:2)

试试这个,而不是jQuery中的直接选项。

var height = ( 100 * parseFloat($(element).css('height')) / parseFloat($(element).parent().css('height')) ) + '%';

答案 1 :(得分:2)

要以%为单位获取值,您可以将值除以最顶层节点[dom中的第一个父节点]

 parseFloat($(this)[0].style.height / $('#idOfFirstParent').height ()) * 100;

,如果你想获得引用DOM中第一个父项的值或文档宽度的值[这将从屏幕的0,0开始]。

 (parseFloat($(this)[0].style.height/ $('window').height ()) * 100).toFixed(2);

                         or 

 (parseFloat($(this)[0].style.height / $('document').height ()) * 100).toFixed(2);

答案 2 :(得分:1)

只需计算百分比:

var w = $("#myDiv").css("width").slice(0,-2);
var ww = $(window).width();
console.log(w/ww*100);

答案 3 :(得分:0)

使用parseInt(string)。 如果字符串以数字

开头,它会删除任何数字后面的字符

答案 4 :(得分:0)

$(this).height()将以百分比(因为它们已设置为百分比)给出div的高度,并且将减少单位。