Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Анимация загрузки картинки

477
11 сентября 2007 года
Robinnovich
182 / / 02.12.2006
Вот на многих сайтах реализована такая функция при наведении на картинку появляется та же картинка только в оригинальном размере все это как бы не представляет труда реализовать но там еще сделана такая штука что пока картинка не загрузилась показывается картинка gif которая как бы показывает что картинка грузится.
Вот мой код подскажете что подправить чтобы был такой эффект
[HTML]
var DivObjPicCreate = false;
var DivObjPic;

if (DivObjPicCreate==false){
DivObjPic= document.createElement("DIV");
DivObjPic.setAttribute('id','showpic');
document.getElementsByTagName('body')[0].appendChild(DivObjPic);
DivObjPic.className = 'showpic';
DivObjPicCreate = true;
DivObjPic.innerHTML = '<img src="includes/images/mini_loading.gif" alt="" id="imgeShowPic">';
}

function showPic(Obj, img){
var PicDivImg = document.getElementById('imgeShowPic');
DivObjPic.style.display = 'table';
PicDivImg.src = img;
Obj.onmouseout = function(){
PicDivImg.src = "includes/images/mini_loading.gif";
DivObjPic.style.display = 'none';
}
document.onmousemove = function(e){
var vc = document.getElementsByTagName((document.compatMode && document.compatMode=="CSS1Compat") ? "HTML":"BODY")[0];
var x = window.event ? event.clientX + vc.scrollLeft : e.pageX;
var y = window.event ? event.clientY + vc.scrollTop : e.pageY;
var vcwidth = vc.clientWidth ? vc.clientWidth + vc.scrollLeft : window.innerWidth + window.pageXOffset;
var vcheight = vc.innerHeight ? window.innerHeight + window.pageYOffset : vc.clientHeight + vc.scrollTop;
if((x + DivObjPic.offsetWidth) > vcwidth) DivObjPic.style.left = (x - DivObjPic.offsetWidth - 4)+'px'; else DivObjPic.style.left = (x + 15)+'px';
if((y + DivObjPic.offsetHeight + 19) > vcheight) DivObjPic.style.top = (y - DivObjPic.offsetHeight)+'px'; else DivObjPic.style.top = y+'px';
}
}
[/HTML]
В моем же случаи картинка появляется в диве и в нем же догружается
353
11 сентября 2007 года
Nixus
840 / / 04.01.2007
[HTML]<div id="image-view" style="position:absolute;">
<img src="loading.gif" alt="Загружается..." id="image-view-loading" />
<img src="none.gif" alt="" id="image-view-loaded" />
</div>

<script><!-- //

// ...

function startLoading(url)
{
var img1 = document.getElementById('image-view-loading');
var img2 = document.getElementById('image-view-loaded');

// Показать сообщение о загрузке.
img1.style.display = '';
// Скрыть изображение.
img2.style.display = 'none';

// Обработчик вызываемый когда изображение загрузится.
img2.onload = function () {
// Как только картинка загрузится, показать ее и
// скрыть картинку с сообщением о загрузке.
img1.style.display = 'none';
img2.style.display = '';
};

// Начать загрузку.
img2.src=url;
}

// ...

//--></script>[/HTML]
92
11 сентября 2007 года
Тень Пса
2.2K / / 19.10.2006
AJAX тебе поможет.

Добавлено: опередили )) и так даже проще ;)
353
11 сентября 2007 года
Nixus
840 / / 04.01.2007
Наверное, я совсем плохой стал, но не представляю как AJAX прикрутить к данной задаче.
477
11 сентября 2007 года
Robinnovich
182 / / 02.12.2006
Nixus Спасибо принцип понят
92
12 сентября 2007 года
Тень Пса
2.2K / / 19.10.2006
да не, это я плохой стал ) вечно бы всё наворотить ))))

PS: а про AJAX - посылаешь запрос на картинку, а пока грузится выводишь индикатор... aka "анимация загрузки"...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог