Я работаю над некоторыми переходами на изображение, когда пользователь нажимает кнопку, чтобы перейти к следующему изображению. Когда есть несколько изображений рядом друг с другом, которые очень узкие, все эти изображения будут переходить в одно и то же время. Поэтому я проверяю ширину изображений и добавляю тонкие в массив, а затем запускаю переход для каждого объекта в массиве. Я хотел создать небольшую задержку между анимацией каждого изображения в массиве, поэтому я пытаюсь запустить свой jQuery.animate после тайм-аута в 1 секунду.
Вот способы, которыми я безуспешно пытался заставить тайм-аут работать:
1.
for (i=0; i < set.length; i++) {
if (i != 0) {
setTimeout(function() { set[i].transitionOut($('#gallery'), 562) }, 100);
} else {
set[i].transitionOut( $('#gallery'), 562 );
}
}
2.
for (i=0; i < set.length; i++) {
if (i != 0) {
function tempTransition() {
set[i].transitionOut( $('#gallery'), 562 );
}
setTimeout(tempTransition, 100);
} else {
set[i].transitionOut( $('#gallery'), 562 );
}
}
3.
for (i=0; i < set.length; i++) {
if (i != 0) {
setTimeout('function() { set[i].transitionOut($("#gallery"), 562) }', 100);
} else {
set[i].transitionOut( $('#gallery'), 562 );
}
}
переходВыход():
jQuery.fn.transitionOut = function(parent, height) {
this.animate({
height: '0',
top: height + 'px'
}, function() {
$(this).remove();
});
}
Я заработал, используя пример закрытия CMS. Но теперь я столкнулся с новой проблемой. Переход происходит только со вторым изображением. Когда есть три изображения, он будет анимировать изображение 1, задерживать, анимировать изображение 2, анимировать изображение 3. Между 2 и 3 задержки нет.
Вот новый код:
for (i=0; i < set.length; i++) {
(function(i) {
if (i != 0) {
function tempTransition() {
set[i].transitionOut( $('#gallery'), 562 );
}
setTimeout(tempTransition, 200);
} else {
set[i].transitionOut( $('#gallery'), 562 );
}
})(i);
}
transitionOut
? Можете ли вы предоставить этот код? - person Doug Neiner   schedule 30.11.2009