Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.07.2010, 01:51
Интересующийся
Отправить личное сообщение для Papa Посмотреть профиль Найти все сообщения от Papa
 
Регистрация: 16.12.2009
Сообщений: 19

Прелоад изображений
можно ли сделать прелоадер изображений без добавления их в документ как узлов.. т.е.
var img = document.createElement('img');
без document.body.appendChild(img);

вариант первый, проверять свойство img.complete в цикле, работает только в мозилле (хотя раньше использовал, а что в других браузерах неработает заметил тока щасс)

второй вариант img.onload неработает вроди нигде
Ответить с цитированием
  #2 (permalink)  
Старый 10.07.2010, 02:01
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

А чем они в документе помешали?
Ответить с цитированием
  #3 (permalink)  
Старый 10.07.2010, 02:09
Интересующийся
Отправить личное сообщение для Papa Посмотреть профиль Найти все сообщения от Papa
 
Регистрация: 16.12.2009
Сообщений: 19

их в документе нет изначально, они создаються потом вставляються в документ, просто в ie при динамической вставке картинки сначала показывает битое изображение пока не загрузиться, ну и для других действий типа анимации надо дождаться полной загрузки. Из ответа следует что надо обязательно вставить в документ, visibility:hidden или opacity:0 или куданибудь где невидно, только потом можно проверять onload или complete? может еще както можно? заранее спасиб за ответ
Ответить с цитированием
  #4 (permalink)  
Старый 10.07.2010, 02:11
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от Papa
ставить в документ, visibility:hidden или opacity:0 или куданибудь где невидно, только потом можно проверять onload или complete?
Да. Обычно, просто задают отрицательные координаты.
Ответить с цитированием
  #5 (permalink)  
Старый 10.07.2010, 02:25
Интересующийся
Отправить личное сообщение для Papa Посмотреть профиль Найти все сообщения от Papa
 
Регистрация: 16.12.2009
Сообщений: 19

"Обычно, просто задают отрицательные координаты." я раньше так и делал, но потом опять создавал document.createElement('img'); чтобы вставить в нужное место, но вот заметил что ie заного грузить пытаеться, следущий вопрос написал немного раннее, там какраз это описано..

еще вопросик, вот странно, когда я загружаю таким способом правильным, т.е. вставляю в документ,
var img = document.createElement('img');
img.onload = func;
img.src = 'src';
document.body.appendChild(img);


но пока я вставил картинку в левое место, чтобы просто проверить на загрузку

потом убежден что она уже прокеширована браузером опять:
var img = document.createElement('img');
нужный_элемент.appendChild(img);

експлорер все равно показывает битую картинку сначало)

значит для оптимальyого варианта нужно этот этот узел из document.body с помощь cloneNode копировать

или прокатит вот так?
var img = document.createElement('img');
img.onload = function () {нужный_элемент.appendChild(img);};
img.src = 'src';
document.body.appendChild(img);

Последний раз редактировалось Papa, 10.07.2010 в 02:35.
Ответить с цитированием
  #6 (permalink)  
Старый 10.07.2010, 02:30
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от Papa
var img = document.createElement('img');
нужный_элемент.appendChild(img);


експлорер все равно показывает битую картинку сначало)
Вы по событию img.onload выполняете нужный_элемент.appendChild(img)? Может быть размеры картинки пересчитываются? Попробуйте задать атрибуты width и height.


Сообщение от Papa
узел из document.body с помощь cloneNode копировать
appendChild умеет перемещать элемент, если тот уже был в дереве.
Ответить с цитированием
  #7 (permalink)  
Старый 10.07.2010, 02:33
Интересующийся
Отправить личное сообщение для Papa Посмотреть профиль Найти все сообщения от Papa
 
Регистрация: 16.12.2009
Сообщений: 19

у меня по свойству complete проверялось, размеры картинки не пересчитываються, вобщем я понял что для норм загрузки нужно либо вставлять в нужный элемент и делать невидимым, или перемещать по дереву в нужное место после загрузки, но не создавать заново эту картинку с помощью document.createElement.. пасибо

Последний раз редактировалось Papa, 10.07.2010 в 02:49.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
прокрутка изображений RGun jQuery 3 08.03.2010 10:03
Скролл мини изображений I-Trap Элементы интерфейса 1 25.11.2009 22:03
Автоматический вывод всех изображений Stalker Общие вопросы Javascript 5 10.07.2009 13:27
onLoad до изображений в IE vasa_c Events/DOM/Window 2 28.04.2009 13:09
проблема со сменой изображений при наведение Jack Элементы интерфейса 0 19.03.2009 22:13