Всем привет! Делаю прогресс-бар для пользователя, но
полоса текущего прогресса (зеленого цвета) отображается неправильно. Она должна доставать до необходимого значения. Например, сейчас установлено "$my_reput = 250;", но прогресс показывает только около 50 (примерно). Как это исправить?
// Массив отрезков
$array_reput = array(
0 => array('name' => 'name 1', 't_reput' => 0),
1 => array('name' => 'name 2', 't_reput' => 100),
2 => array('name' => 'name 3', 't_reput' => 250),
3 => array('name' => 'name 4', 't_reput' => 500),
4 => array('name' => 'name 5', 't_reput' => 1000),
5 => array('name' => 'name 6', 't_reput' => 3000),
);
// Текущий параметр пользователя (может меняться пользователем)
$my_reput = 250;
// Максимальное количество параметра "t_reput" (оно всегда в последнем отрезке)
$key_end_reput = array_key_last($array_reput);
// Вычисляем длину каждого отрезка исходя из их количества
$width_otr = round(100 / (count($array_reput) - 1));
$div_progres = '';
// На сколько отступать с левого края для текущего отрезка
$left_text = 0;
foreach($array_reput as $key => $value) {
$div_progres .= '
<div style="display:inline-block;position: absolute;z-index:3;line-height: 30px;color: #999;left:'.$left_text.'%;border-left:2px solid #FFF;">'.$value['t_reput'].'</div>';
$left_text += $width_otr;
}
// Длина выполненного прогресса (100 * мой текущий параметр / максимальный параметр)
$width = round(100 * $my_reput / $array_reput[$key_end_reput]['t_reput']);
echo '
<div style="margin:50px auto;max-width:640px;">
<div>Текущий прогресс: '.$my_reput.'</div>
<div style="clear:both;height: 20px;background-color: #1f1910;height: 30px;position: relative;border: 1px solid #333333;margin:10px 0;">
'.$div_progres.'
<div style="background-color: #058a0c;height: 30px;float: left;border-right: 1px solid #05ae1a;width:'.$width.'%;"></div>
</div>
</div>';