Доброго времени суток друзья! Есть у меня что-то наподобие галереи, выглядит так:
Работает следующим образом: щелкаешь на кнопку с шаблоном ткани и загружается картинка из базы данных с соответствующим описанием. Дело в том что смена изображения выглядит не очень хорошо.
В интернете не смог найти подходящего решения. Хотелось бы чтобы изображение появлялось плавно, и пока идет загрузка, появлялся соответствующий индикатор в виде GIF-ки. При этом лучше всего было бы чтобы предыдущее изображение не исчезало пока не загрузится новое. Использую простейший jquery ajax запрос:
$(document).ready(function() {
$('#select-menu').find('a').click(function() {
var formData = $(this).attr('href');
$.ajax({
type: "GET",
url: "image.php",
data: formData,
cache: true,
content: "html",
success: function processData(data) {
$('#item-wrapper').html(data);
}
});
return false;
});
});
На данный момент получается что изображение появляется резко, при этом старое пропадает и вместо него на секунду появляется в углу значок не загрузившегося изображения. Поэтому и хочу этот процесс замаскировать.
Обращение происходит к этому сценарию:
<?php
if (isset($_GET['cloth']) && isset($_GET['cloth_index'])) {
$imageCloth = getItemImage($getId, $keyClass, $keySubclass, $getCloth, $getClothIndex);
if(!empty($imageCloth)) {
foreach ($imageCloth as $img) {
$itemCatTitle = $img['catalog_title'];
$itemTitle = $img['title'];
$itemImg = $img['image'];
}
?>
<div id="item-wrapper">
<figure>
<b class="loading"></b>
<img src="./uploads/catalog/items/<?php echo $itemImg; ?>">
</figure>
</div>
<?php
}
else {
include('noitem.html');
}
}
Рассматривал такой вариант:
если добавить "beforeSend:" анимацию загрузки, это добавит лишь анимацию загрузки, изображение будет также дергаться. К тому же эта анимация появится перед отправкой данных на сервер, а нужно её вставить, пока принимает данные. Видел множество галерей, где это реализовано, но там немного иначе всё работает. Как быть с подобным запросом? Подскажите пожалуйста!