поочередное открытие картинок
Всем доброго времени суток!
На странице имеется около 10 картинок. все спрятаны методом $('img').hide(). Мне нужно сделать так, что бы каждая из спрятанных картинок одна за одной, по очереди открылись (fadeIn). Может ли кто помочь с этой задачей? |
Посмотрите тему "Как заблокировать автоскроллинг" от 27.7.2011
Возможно, скрипт вам подойдет. |
<script>
//Скритие всех картинок
$("img").hide();
//Создание интервала для очередного отображения картинок
setInterval(function(){
var visEl = $("img:visible"); //Находи видимую картинку
var nextEl = visEl.next(); //Следующая после видимой
$("img").hide(); //Скрытие опять всего
if(visEl.length==0||nextEl.length==0) //Если нет видимого элемента или нет следующего тогда отображаем первую картинку в другом случае открываем следующую по порядку
$("img:first").fadeIn();
else nextEl.fadeIn();
}, 1000)
</script>
|
Уважаемый Zimb!
Ваш скрипт работает, но изображение на странице дергается вверх-вниз в моменты срабатывания .hide() и fadeIn(). Аналогичная проблема в теме "Как заблокировать автоскроллинг". Помогите решить! |
не, не запускается :(((
Наверное, что-то не то делаю. Вот мой вариант, но он тоже не работает: <script type="text/javascript"> $(function() //при загрузке страницы сначала все прячем { $('#photo').hide() $('.preview').hide() } ); window.onload=function() //после загрузки страницы - открываем поочередно { $('#photo').fadeIn('slow'); open2() }; function open2() { $.each($('.preview:hidden'), function(){ setTimeout(myopen(this), 100) }) } function myopen(obj) {$(obj).fadeIn(500)}; </script> |
http://jsfiddle.net/phaYP/3/
$(function(){
$('#photo').fadeIn('slow');
var els = $('.preview:hidden'), i=0;
(function cycle(){
i in els && els.eq(i++).fadeIn("500", cycle);
})();
});
|
Цитата:
|
там демо по ссылке. работает.
|
попробовал вот так:
$(function()
{
$('#photo').hide()
$('.preview').hide()
window.onload=function()
{
$('#photo').fadeIn('slow');
$('.preview:hidden:first').fadeIn('slow');
$('.preview:hidden').each(function()
{
$(this).fadeIn('slow');
});
}
$('a').click(function()
{
$('#photo').fadeOut(400)
$('.preview').fadeOut(400)
});
}
);
Нормально - плавное октрытие всех сразу preview работает. Попробовал добавить setTimeout():
$('.preview:hidden').each(function()
{setTimeout(function(this)
{
$(this).fadeIn('slow');
},100)
});
Не работает :((( |
|
| Часовой пояс GMT +3, время: 10:00. |