Подтвердить что ты не робот

Отображать значение в jQueryUI ProgressBar

Я установил простой jQuery UI ProgressBar:

<script type="text/javascript">
    $(function() {
        $("#progressbar").progressbar({
                value: 35
        });
    });
</script>
<div id="progressbar">  </div>

Кроме всего прочего, я хотел бы отобразить некоторый текст в строке выполнения (для начала я просто использовал бы "значение" ).

Я не могу заставить это работать.

Бонусный вопрос: как отформатировать отображаемый текст (например, цвет, выравнивание)?

4b9b3361

Ответ 1

Вместо того, чтобы вводить другой элемент (span) и новый стиль, используйте то, что уже существует:

var myPer = 35;
$("#progressbar")
    .progressbar({ value: myPer })
    .children('.ui-progressbar-value')
    .html(myPer.toPrecision(3) + '%')
    .css("display", "block");

css("display", "block") должен обрабатывать случай, когда значение равно 0 (jQuery UI устанавливает a display: none в элементе, когда значение равно 0).

Если вы посмотрите на источник демо, вы заметите, что добавлен <div class="ui-progressbar-value">, Вы можете просто переопределить этот класс в своем собственном CSS, например:

.ui-progressbar-value {
    font-size: 13px;
    font-weight: normal;
    line-height: 18px;
    padding-left: 10px;
}

Ответ 2

Как я это делал:

<div class="progressbar"><span style="position:absolute; margin-left:10px; margin-top:2px>45% or whatever text you want to put in here</span></div>

Вы можете отрегулировать верхний край и маржу слева, чтобы текст находился в центре индикатора выполнения. Затем вы применяете плагин progressbar для элементов, которые имеют класс progressbar в разделе javascript страницы

Надеемся на эту помощь

Ответ 3

После поиска некоторых решений, основанных на ответах здесь, я закончил с этим:

Html:

<div id="progress"><span class="caption">Loading...please wait</span></div>

JS:

$("#progress").children('span.caption').html(percentage + '%');

(для вызова внутри функции, которая обновляет значение progressbar)

CSS

#progress {
  height: 18px;
}

#progress .ui-progressbar {
  position: relative;
}

#progress .ui-progressbar-value {
  margin-top: -20px;
}

#progress span.caption {
  display: block;
  position: static;
  text-align: center;
}

Преимущества:

  • Подпись сосредоточена без привязки к привязке (необходимо, если ширина заголовка изменяется динамически)
  • Никакая странная манипуляция JS
  • Простой и минимальный CSS

Ответ 4

Это решение обеспечивает гибкую ширину, основанную на тексте, а также центрирование текста, стилизацию текста и т.д. Работает в Chrome, FF, IE8 и IE8 в режиме совместимости. Не тестировал IE6.

Html:

 <div class="progress"><span>70%</span></div>

Script:

$(".progress").each(function() {
    $(this).progressbar({
        value: 70
    }).children("span").appendTo(this);
});

CSS

.progress.ui-progressbar {position:relative;height:2em;}
.progress span {position:static;margin-top:-2em;text-align:center;display:block;line-height:2em;padding-left:10px;padding-right:10px;}
.progress[aria-valuenow="0"] span {margin-top:0px;}​

Рабочий пример: http://jsfiddle.net/hasYK/

Ответ 5

Я использовал это:

<div id="progressbar" style="margin: 0px 0px 16px 0px; "><span style="position: absolute;text-align: center;width: 269px;margin: 7px 0 0 0; ">My %</span></div>

Ответ 6

    <style>
        #progress {
            height: 18px;
        }

        #progress .ui-progressbar {
            position: relative;
        }

        #progress .ui-progressbar-value {
            margin-top: -20px;
        }

        #progress span.caption {
            display: block;
            position: static;
            text-align: center;
        }

    </style>
</head>
<body>
    test
    <div id="progressbar"></div>
    <br>
    test2
    <div id="progressbar2"></div>

    <script>
        $("#progressbar").progressbar({
            max : 1024,
            value : 10
        });

        $("#progressbar2").progressbar({
            value : 50
        });

        $(document).ready(function() {
            $("#progressbar ").children('div.ui-progressbar-value').html('10');
            $("#progressbar2 ").children('div.ui-progressbar-value').html('50%');

        });

    </script>

</body>