我有一个设置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);
});
答案 0 :(得分:4)
$(".meter > span").each(function() {
$(this).data("origWidth", ($(this).width() / $(this).parent().width()) * 100)
.width(0)
.animate({ width: $(this).data("origWidth") + "%" }, 3600);
});
答案 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将保持%
宽度。