Я пытаюсь использовать Дизайн подхода Контракта. Это может быть эмулированное время выполнения любым языком. Каждые поддержки языка "утверждают", но это легко и covenient для записи лучшей реализации, которые позволяют Вам управлять ошибкой более полезным способом.
В Лучшие 25 Самых Опасных Программных ошибок "Неподходящий Контроль ввода" является самой опасной ошибкой в разделе "Insecure Interaction Between Components".
Добавление , который предварительное условие утверждает в начале методов, является хорошим способом быть уверенным, что параметры последовательны. В конце методов я пишу постусловия , та проверка, которые производят, - то, что является inteded, чтобы быть.
для реализации инварианты , я пишу метод в любом классе, который проверяет "последовательность класса", которую должен назвать автоматически макрос предварительного условия и постусловия.
я оцениваю Библиотека Контракта Кода .
Редактировать 2+ года спустя: есть лучшие способы сделать это ... так что игнорируйте этот ответ.
Я бы попробовал комбинацию обратных вызовов и setTimeout. (Я собираюсь опираться на ответ Коби, поскольку он отправил сообщение, пока я печатал.)
В CSS задайте обоим изображениям «display: none;» вместо того, чтобы скрывать их в начале в jQuery. Затем в jQuery:
function imageOneFade(){
$('#img1').fadeIn(2000, function(){ setTimeout("$('#img1').fadeOut(2000); imageTwoFade();",6000); });
}
function imageTwoFade(){
$('#img2').fadeIn(2000, function(){ setTimeout("$('#img2').fadeOut(2000); imageOneFade();",6000); });
}
$(document).ready(function(){
imageOneFade();
});
Надеюсь, что-то подобное у вас получится.
Функция setTimeout принимает два параметра.
Почему бы вам не использовать уже созданное решение, такое как Cycle plugin ?
У него гораздо больше возможностей, чем вы хотите.
Если вам действительно нужно сделать это самостоятельно, вы можете посмотреть исходный код плагина. Я этого не делал, но думаю, что кодировщик использует комбинацию функции animate (из jQuery) и функции setTimeout (из чисто javascript). Используя эти функции, он должен сделать что-то вроде включения таймера на определенное время, а по истечении времени он выполняет функцию анимации, устанавливая непрозрачность изображения на 0 (для скрытия изображения) и 1 (для показа изображения).
Вы можете использовать комбинацию обратных вызовов jQuery и JavaScript setTimeout
.
setTimeout используется для задержек, а обратные вызовы используются после завершения анимации (хотя есть много других обратных вызовов).
function startSlideshow(){
$('#p1').fadeOut(2000, function(){
setTimeout(function(){
$('#p1').fadeIn(2000, startSlideshow)
},1000);
});
}
$(document).ready(function(){
startSlideshow();
});
См. это в действии: http://jsbin.com/ulugo