Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Загрузка изображения (https://javascript.ru/forum/dom-window/21855-zagruzka-izobrazheniya.html)

shilinpavel 26.09.2011 21:57

Загрузка изображения
 
Подскажите как сделать так чтобы во время загрузки изображения на его месте была анимация загрузки, и только после того как изображение полностью загрузиться, оно появиться.

Sweet 26.09.2011 22:05

С помощью события .onload

shilinpavel 26.09.2011 22:15

А если я подгружаю картинку через JavaScript

document.getElementById('head').innerHTML = '<img src="../php_script/gall/123.gif" />';

shilinpavel 26.09.2011 22:39

Или это невозможно?

melky 27.09.2011 02:51

// это картинка, показывающая загрузку.
var loader=new Image();
loader.src="http://www.toidesign.co.nz/images/ajax-loader.gif";

// при клике на кнопку....
document.getElementsByTagName('button')[0].onclick = function(){
    // заменяем кнопку 
    document.body.replaceChild(loader,this);
    
    // ставим на загрузку большую картинку
    var a = new Image(200,200);
    // я убрал кеширование, чтобы крутилка была заметной.
    a.src="http://cs9591.vkontakte.ru/u00001/136592355/z_17426819.jpg?"+Date.now();
    a.onload = function(){
        // когда она загрузится, заменям крутилку этой картинкой.
        document.body.replaceChild(a,loader);
    };
        
}



пример
<button>загрузить картинку</button>

<script>
var loader=new Image();
loader.src="http://www.toidesign.co.nz/images/ajax-loader.gif";


document.getElementsByTagName('button')[0].onclick = function(){
    document.body.replaceChild(loader,this);
    
    var a = new Image(200,200);
    a.src="http://cs9591.vkontakte.ru/u00001/136592355/z_17426819.jpg?"+Date.now();
    a.onload = function(){
        document.body.replaceChild(a,loader);
    };
        
}
</script>

Genius 27.09.2011 15:58

Это всё не так сложно. А вот как сделать, чтоб во время загрузки ещё и график с процентами загрузки отображался?

Это потруднее, если вообще возможно.

melky 27.09.2011 18:30

это возможно в современных браузерах. это уже ajax, и это уже один домен.


Часовой пояс GMT +3, время: 03:55.