获取jQuery将宽度设置为百分比而不是像素

时间:2013-03-04 23:29:18

标签: javascript jquery html css

我有一个设置here on jsFiddle的示例,jQuery当前将宽度设置为固定像素宽度。因此,当浏览器宽度减小时,条形图会从屏幕向右移动。 我的问题是如何让jQuery将宽度设置为百分比?

<div class="bars">
    <div class="meter">
        <span style="width: 88%"></span>
    </div>
    <div class="meter">
        <span style="width: 62%"></span>
    </div>
</div>

$(".meter > span").each(function() {
    $(this)
        .data("origWidth", $(this).width())
        .width(0)
        .animate({
            width: $(this).data("origWidth")
        }, 3600);
});

3 个答案:

答案 0 :(得分:4)

$(".meter > span").each(function() {
   $(this).data("origWidth", ($(this).width() / $(this).parent().width()) * 100)
          .width(0)
          .animate({ width: $(this).data("origWidth") + "%" }, 3600);
});

FIDDLE

答案 1 :(得分:2)

您必须首先计算这两个宽度之间的相对百分比,如下所示:

var relativePercentage = ($(this).width()/$(this).parent('div').width())*100;

然后你可以将其设置为目标宽度,记住要添加%号码(或者它将获得px中的值),如下所示:

$(this)
    .data("origWidth", $(this).width())
    .width(0)
    .animate({
        width: relativePercentage + '%'
    }, 3600);

<强> Working demo

答案 2 :(得分:1)

这就是你所需要的:

LIVE DEMO

$(".meter > span").each(function() {
    $(this).animate({ width: $(this).data("width")+"%" }, 3600);
});

这个HTML:

<span data-width="88"></span>

并在CSS设置宽度为0%;

调整窗口大小SPAN s将保持%宽度。