jQuery动画(不同的选择器和不同的动作)

时间:2011-10-21 20:39:37

标签: jquery animation loops

我对脚本和jQuery非常陌生,即使我彻底试图找到我的问题的答案,我也不太明白。

我正在为该网站制作一个非Flash动画介绍。 这是动画部分的代码(它的一部分......但其余部分就像这样)。 我需要的是弄清楚如何在完成后动画循环这个动画,而无需刷新页面。请帮助!

<script type="text/javascript">

$(document).ready(function() {
    $('#pic0').delay(2000).animate({opacity:1.0}, {duration: 3000, queue: true});
    $('#pic0-d').delay(4000).animate({opacity:1.0}, {duration: 1700, queue: true});
    $('#pic0-i').delay(5000).animate({opacity:1.0}, {duration: 1700, queue: true});
    $('#pic0-e').delay(6000).animate({opacity:1.0}, {duration: 1700, queue: true});
    $('#pic0-n').delay(7000).animate({opacity:1.0}, {duration: 1700, queue: true});
    $('#pic0-s').delay(8000).animate({opacity:1.0}, {duration: 1700, queue: true});
    $('#pic0-g').delay(9000).animate({opacity:1.0}, {duration: 1700, queue: true});

    //this list goes on, but i figured this is enough for example purposes


});


$(function() {
    $("#enter").delay(2000).animate({opacity:1.0}, { duration: 2000, queue: true });

    $("#enter").hover(highlight, highlight);
           });

function highlight (evt) {
    $("#enter").toggleClass("highlighted");
    }

</script>

我需要在循环上制作动画的部分是$ pic0到#pic0-g ....如果有人能给我一个提示,我会非常感激。我试图找到一种方法将所有动画组合在一个函数中,但在组合不同的选择器和不同的动作时遇到了问题。

2 个答案:

答案 0 :(得分:0)

你可能想要使用setTimeout(),并在函数调用中放置你需要循环的部分。

E.g:

setTimeout(AnimationFunctionName(), 10000)

然后在AnimationFunctionName()的末尾,再次调用setTimeout,它将循环。

答案 1 :(得分:0)

我会将所有动画放在一个函数中,然后在最后一个动画完成时调用它(请注意jQuery documentation for .queue()中完成相同的操作)。 这可以这样做:

function animateThings() {
    $('#pic0').delay(2000).animate({opacity:1.0}, {duration: 3000, queue: true});
    $('#pic0-d').delay(4000).animate({opacity:1.0}, {duration: 1700, queue: true});
    $('#pic0-i').delay(5000).animate({opacity:1.0}, {duration: 1700, queue: true});
    $('#pic0-e').delay(6000).animate({opacity:1.0}, {duration: 1700, queue: true});
    $('#pic0-n').delay(7000).animate({opacity:1.0}, {duration: 1700, queue: true});
    $('#pic0-s').delay(8000).animate({opacity:1.0}, {duration: 1700, queue: true});
    $('#pic0-g').delay(9000).animate({opacity:1.0}, {duration: 1700, queue: true})
    //more animations
    $('selector-for-last-animation').delay(something).animate({name: value}, {duration: something, queue: true, complete: animateThings});
}
animateThings();