3

バーの幅にアタッチするために、現在の値のパーセンテージを計算する必要があります。

<div class="bar"><span class="bar-inside" data-value="120"></span></div>
<div class="bar"><span class="bar-inside" data-value="1320"></span></div>
<div class="bar"><span class="bar-inside" data-value="670"></span></div>

100%になる最大値(この場合は1320)を見つける必要があり、それに応じて他のバーの幅をパーセンテージで計算します。

ありがとうございました!

4

4 に答える 4

3
var max = 0;
$('.bar').each(function() {
    max = Math.max(max, $('.bar-inside', this).data('value'));
})
.css('width', function() {
    return ($('.bar-inside', this).data('value') * 100 / max) + '%';
});

http://jsfiddle.net/8nmhY/

于 2013-03-15T11:47:23.663 に答える
1

map関数を使用してからMath.max.

var values = $.map($("span.bar-inside"), function(el, index) { return parseInt($(el).data('value')); });
var max = Math.max.apply(null, values);

上記1320は期待される結果を出力します。

于 2013-03-15T11:35:54.293 に答える
1

これでうまくいくはずです:(フィドル

var max = 0; 

$('.bar-inside').each(function(){ max = Math.max(max, $(this).data("value")); });
于 2013-03-15T11:29:10.150 に答える
0
var max = -Infinity;

var maxEle = $(".bar").each(function() {
    if (+this.attr('data-value') > max) +this.attr('data-value', max) ;
}).filter(function() {
    return this.attr('data-value') == max;
});


if (maxEle.length > 1) maxEle = maxEle.eq(Math.floor(Math.random() * maxEle.length));
于 2013-03-15T11:32:56.667 に答える