powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Анимировать серию изображений
2 сообщений из 2, страница 1 из 1
Анимировать серию изображений
    #39767839
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На сайте есть страница, на которой выводится изображение. Допустим, /img/live.jpg.
live.jpg это изображение с камеры, которое обновляется с определенной периодичностью.
Кроме того рядом с этим файлом сеть серия файлов live_00.jpg ... live_23.jpg — это изображения, которые обновляются каждый час.
Эти изображения иногда могут отсутствовать — например если на момент снятия изображения камера была недоступна.

Я хочу сделать так, чтобы когда пользователь водил мышкой по картинке, то выводилось изображение за разный период времени — левый край соответствует 0 часам, правый край соответствует 23 часам.
Если делать «в лоб», то получается так:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
function CamAnimate() {
	var w = this.event.target.width;
	var h = this.event.target.height;
	var p = this.event.pageX - this.event.target.offsetLeft;
	if (p < 0) p = 0;
	if (p > w-1) p = w-1;
	var d = Math.floor(24*p/w);
	var b = this.event.target.dataset.base;
	var s = this.event.target.src;
	var m = s.match(/^(.+\/img\/live)(_[0-9]{2})?\.jpg$/);
	if (m)
	{
		s = m[1] + ((d==(new Date()).getHours()) ? b : 'live_'+('00'+d).substr(-2)) + '.jpg';
		this.event.target.src = s;
	}
}


В принципе работает, но плохо.
Во-первых, изображения загружаются при движении мышки и загрузка занимает какое-то время, поэтому "отзывчивость" при первоначальной загрузке страницы никакая. Впрочем это как раз легко решается предзагрузкой (элемент link с rel=preload).
Во-вторых, если соответствующее изображение отсутствует, то вместо изображения выводится маленький значок недоступного изображения и корежит страницу.
Наверное более правильным будет не менять напрямую src, а асинхронно загружать картинку и заменять ее в событии успешного завершения загрузки.
Не подскажите, как такое лучше решать? Может быть есть готовые библиотеки?
В принципе эта задача довольно сильно похожа на показ превью в видеоплеере.
...
Рейтинг: 0 / 0
Анимировать серию изображений
    #39767841
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Во-вторых, если соответствующее изображение отсутствует, то вместо изображения выводится маленький значок недоступного изображения и корежит страницу.картинку можно вставить в див и тогда при отсутствии картинки ничего корёжить не будет
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Анимировать серию изображений
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]