Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Показать загрузку картинки 
:(
    Опции темы
Gold Dragon
  Дата 10.9.2004, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



У меня есть вот этот код, который выводит фото с пояснением
Код
<script>
function foto(i,t){
var f_p = new Image()
f_p.src = "foto/" + i
document.pic.src = f_p.src
var mes = document.getElementById("foto_txt")
mes.innerHTML = t
}
</script>
....
<a href="#" onclick="foto('001.jpg','Описание 1')">1</a>
<a href="#" onclick="foto('002.jpg','Описание 2')">2</a>
<a href="#" onclick="foto('003.jpg','Описание 3')">3</a>
....
<p id="foto_txt" class="txt1"></p>

<img src="foto/001.jpg" name="pic" border="1">

Так как фотки всё таки тяжеловаты, то хочется чтобы когда я выбираю новую, исчезала подпись, сама фотка и появлялась надпись "идет загрузка..." и исчезала после того, как фотка загрузится. А то сейчас старая фотка не исчезает пока не загрузится новая, возникает такое ощущение, что функция не сработала.

Как это можно лучше реализовать?


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Ignat
Дата 10.9.2004, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: нет
Всего: 73



Скрой слой с фоткой по onClick, прицепи к <img> onLoad и по лоаду делай visible.


--------------------
Теперь при чем :P
PM   Вверх
Gold Dragon
Дата 11.9.2004, 07:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



А сам процесс загрузки, я так понят, отслеживать нельза, т.е. 10% 20% ... 100%

И ещё как мне на месте рисунка выводить надпись о загрузке, ну типа использовать document.img.title - это вообще возможно

ЗЫ
просто не делал такое, а другие можть делали smile.gif

Это сообщение отредактировал(а) Red Dragon - 11.9.2004, 07:40


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Гость_DeathStorm
Дата 11.9.2004, 08:54 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











посчет %ной загрузки этого сделать нельзя (если картинка нет порезана)
а в случае вроде с картинками если не изменяет память там есть состояния
типа грузится загружен инициализирован правда не уверен

попробуй добавить другую картинку (напиши плизе вайт типа, 2- цветную гиф), и сделай ее дисплай блок
а затем после загрузки основной опятьв ноне ставь
а титле вроде не все браузеры поддерживают, а проще сделай где нить иннер техт с состоянием загрузки


  Вверх
Sardar
Дата 11.9.2004, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата
посчет %ной загрузки этого сделать нельзя (если картинка нет порезана) а в случае вроде с картинками если не изменяет память там есть состояния типа грузится загружен инициализирован правда не уверен

Да есть такие свойства: complete и readyState
Процентную загрузку сделать не сможешь, лучший выход это анимированный .gif с "видом загрузки"


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Gold Dragon
Дата 14.9.2004, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



withstupid.gif

Что-то перепробывал кучу всего, но так и не получилось

Задача:
- передаётся функции название файла
- функция скрывает предыдущий файл
- пишут, что идёт загрузка
- как только файл полностью загрузился, его показывает

Вот черновой код
Код
function foto(i){
var f_p = new Image()
f_p.src = "foto/" + i
document.pic.style.display = "none"
document.pic.src = f_p.src
if (document.pic.complete){document.pic.style.display = "inline"}
}

В общем, не понял как работать с complete и readyState


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Aliance
Дата 14.9.2004, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Red Dragon
1.) Могу дать гифку с надписью Loading... (анимированная)
2.) Есть скрипт полосы такой, там все настраивается и, при желании, можно выполнить задачу, которую ты хочешь, кинуть скрипт?
PM MAIL WWW ICQ Skype   Вверх
Sardar
Дата 14.9.2004, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Red Dragon попробуй через каждые промежутки времени проверять не загруженна ли картинка.

Код
var f_p =new Image();
function foto(i){
 f_p.src = "foto/" + i;
 document.getElementById("pic").src = load_image.src; //пока поставим загрузку
 check_foto.tmr = window.setInterval("check_foto()",1000); //каждую секунду проверяем не загрузилась ли
}
function check_foto() {
  if(f_p.complete) {
    document.getElementById("pic").src=f_p.src;
    window.clearInterval(check_foto.tmr);
  }
}



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Gold Dragon
Дата 15.9.2004, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



Sardar
Вроде пока работает, тока поясни check_foto(), что-то не могу понять complete

Aliance
Кидай GIF`ку, буду проверять код Sardar`а






--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Aliance
Дата 15.9.2004, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Red Dragon
GIF`ка тут
PM MAIL WWW ICQ Skype   Вверх
Sardar
Дата 15.9.2004, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Опасно написал, вот правильный код с коментариями:
Код
var loadImage=new Image();
function foto(i) {
if(check_foto.tmr!=null) window.clearInterval(check_foto.tmr); //если уже стяла загрузка, то сбросим её
LoadImage.src = "foto/" + i; //запрашиваем картинку
document.getElementById("pic").src = LoadAnimGif.src; //пока поставим загрузку
//если в кеше не лежит, то ставим таймер, каждую секунду будем проверять не згруженна ли картинка
check_foto.tmr = window.setInterval("check_foto()",1000);
}
function check_foto() { //функция вызывается в интервале пока не загрузится картинка
 if(LoadImage.complete) { //если картинка загрузилась [true, false]
  document.getElementById("pic").src=LoadImage.src; //поажем
  window.clearInterval(check_foto.tmr); //и сбросим таймер
  check_foto.tmr=null;
 }
}



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Gold Dragon
Дата 16.9.2004, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



Что-то правильный код не хочет работать, картинка как загрузится не меняется
А почему опасный тот код? Вот как он сейчас у меня выглядит
Код
var f_p = new Image();
var load_image = new Image()
load_image.src = "foto/loading.gif"

function foto(i,t){
document.getElementById("foto_txt").innerHTML = t
f_p.src = "foto/" + i;
document.getElementById("pic").src = load_image.src
check_foto.tmr = window.setInterval("check_foto()",100)
}

function check_foto(){
if(f_p.complete){
 document.getElementById("pic").src=f_p.src;
 window.clearInterval(check_foto.tmr);
}
}

Вот здесь как он работает http://region68.russian.ru "О проекте" --> "Фото"

Посмотрите в живую как работает. Правда картинки тяжёлые, но какие дали, такие и прилипил (оптимизации уже не поддаются)

Да, и подходит ли анимGIF`ка к общему виду

Это сообщение отредактировал(а) Red Dragon - 16.9.2004, 08:33


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Sardar
Дата 16.9.2004, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



У меня канал 960кбс, так что gif'ку не вижу smile.gif
В Мозилле не работает, попробуй:
Код
document.getElementById("pic").setAttribute("src",load_image.src);



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0688 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.