Создание экрана загрузки в HTML5

У меня возникли некоторые проблемы с поиском достойного учебника для создания экрана стиля загрузки в отношении HTML5. Честно говоря, я не знаю, с чего начать...

мой проект-это, по сути, простая игра HTML5, в которой я буду загружать различные листы спрайтов и тайлсеты. Они будут достаточно маленькими, но я хотел бы показать небольшой загрузочный счетчик вместо пустого экрана, пока все ресурсы загружены.

очень ценится, если кто-то может укажите мне в правильном направлении, будь то приличные ссылки или образцы кода, чтобы заставить меня идти...мой Google-fu сегодня отсутствует!


для уточнения мне нужно выяснить, как загружать сами ресурсы, в отличие от поиска блесны. Например, как вычислить, что X% загружен.


Изменить 2

глупый я, я могу просто проверить <variable>.image.complete. Проголосовали за закрытие.

5 ответов


этот сайт отлично подходит для анимированных загрузочных гифок:http://ajaxload.info/. Наложение может использоваться для отображения изображения, а также для предотвращения взаимодействия со страницей во время загрузки. Вы можете использовать div, расположить его над всем остальным (z-index) и установите ширину и высоту в 100%.


старый вопрос, но полезно знать, что объект Image также имеет событие onload. Часто лучше использовать это, чем проверять полное, например, цикл.

пример использования (фактически не проверено, если работает):

var numImagesLoaded = 0;
function incrementAndCheckLoading(){
    numImagesLoaded++;
    if(numImagesLoaded == 2){
        // Do some stuff like remove loading screen or redirect to other URL
    }
}    

image1 = new Image();
image1.src = "image1.jpg"
image1.onload = incrementAndCheckLoading;
image2 = new Image();
image2.src = "image2.jpg"
image2.onload = incrementAndCheckLoading;

это отличный ресурс для демонстрации анимации HTML5 CSS. http://slides.html5rocks.com/#css-animation

 @-webkit-keyframes pulse {
  from {
    opacity: 0.0;
    font-size: 100%;
  }
  to {
    opacity: 1.0;
    font-size: 200%;
  }
}

div {
  -webkit-animation-name: pulse;
  -webkit-animation-duration: 2s;
  -webkit-animation-iteration-count: infinite;
  -webkit-animation-timing-function: ease-in-out;
  -webkit-animation-direction: alternate;
}

этот пример демонстрирует, как создать строку состояния загрузки : http://slides.html5rocks.com/#semantic-tags-2

 <progress>working...</progress>

на этих слайдах есть много других примеров, которые могут иметь то, что вы ищете.


можно использовать <progress> элемент в HTML5. См. эту страницу для исходного кода и live demo. http://purpledesign.in/blog/super-cool-loading-bar-html5/

вот элемент прогресса...

<progress id="progressbar" value="20" max="100"></progress>

это будет иметь значение нагрузки, начиная с 20. Конечно, только стихии будет недостаточно. Вам нужно переместить его по мере загрузки скрипта. Для этого нам нужен JQuery. Вот простой скрипт JQuery, который запускает прогресс от 0 до 100 и делает что-то в определенный временной интервал.

<script>
        $(document).ready(function() {
         if(!Modernizr.meter){
         alert('Sorry your brower does not support HTML5 progress bar');
         } else {
         var progressbar = $('#progressbar'),
         max = progressbar.attr('max'),
         time = (1000/max)*10, 
         value = progressbar.val();
        var loading = function() {
        value += 1;
        addValue = progressbar.val(value);
        $('.progress-value').html(value + '%');
        if (value == max) {
        clearInterval(animate);
        //Do Something
 }
if (value == 16) {
//Do something 
}
if (value == 38) {
//Do something
}
if (value == 55) {
//Do something 
}
if (value == 72) {
//Do something 
}
if (value == 1) {
//Do something 
}
if (value == 86) {
//Do something 
    }

};
var animate = setInterval(function() {
loading();
}, time);
};
});
</script>

добавьте это в свой HTML-файл.

<div class="demo-wrapper html5-progress-bar">
<div class="progress-bar-wrapper">
 <progress id="progressbar" value="0" max="100"></progress>
 <span class="progress-value">0%</span>
</div>
 </div>

надеюсь, это даст вам старт.


потому что этот вопрос помечен html5-я думаю, что мы можем сделать лучше, чем spinner gif. Более современная альтернатива:

http://fgnass.github.io/spin.js/