6

我在 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);
});
4

3 回答 3

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

小提琴

于 2013-03-04T23:35:36.237 回答
2

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

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

然后你可以把它设置为目标宽度,记得加上%数字(或者它会得到 中的值px),像这样:

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

工作演示

于 2013-03-04T23:38:44.517 回答
1

这就是你所需要的:

LIVE DEMO

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

这个 HTML:

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

并在 CSS 中将宽度设置为0%;

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

于 2013-03-04T23:45:27.480 回答