Создание экрана загрузки в 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. Более современная альтернатива: