Ваша настоящая проблема в том, что непрозрачность - это шкала от 0 до 1, а не от 0 до 100. Но вот некоторые небольшие улучшения:
Вы также можете значительно упростить код, поскольку у вас есть только одно изображение поверх другого.
<script type="text/javascript">
var shown = true;
function toggleFront() {
shown = !shown;
$("div#bg1").animate({opacity: shown*1}, 200);
window.setTimeout(toggleFront, 1000);
}
$(function() {
/* Start cycle */
window.setTimeout(toggleFront, 500);
});
</script>
Я испортил ваши значения времени, чтобы показать их быстрее.
Или исправь. Вам нужно window.
перед setTimeout. Простое исправление.
<script type="text/javascript">
function Animate_2()
{
$("div#bg1").animate({opacity: 1}, 2000);
$("div#bg2").animate({opacity: 0 }, 2000);
window.setTimeout(Animate_1, 5000);
}
function Animate_1()
{
$("div#bg1").animate({opacity: 0 }, 2000);
$("div#bg2").animate({opacity: 1}, 2000);
window.setTimeout(Animate_2, 5000);
}
$(function()
{
/* Start cycle */
window.setTimeout(Animate_1, 5000);
});
</script>