2015-02-08 73 views
1

的很快我的动画开始后,它会不同步。 的div应该淡入和一前一后淡出。jQuery的动画不同步

请大家看看下面我的代码...

感谢

(document).ready(function(){ 
    animate_loop = function animate_loop(){ 
      $("#w01").animate({ opacity: 0.4, }, 1000, 
       function(){ $("#w01").animate({ opacity: 1}, 600) 
       animate_loop(); 
      });  
    } 
    animate_loop(); 

    animate_loop = function animate_loop(){ 
      $("#w02").animate({ opacity: 0.4, }, 1500, 
       function(){ $("#w02").animate({ opacity: 1}, 600) 
       animate_loop(); 
      });  
    } 
    animate_loop(); 

    animate_loop = function animate_loop(){ 
      $("#w03").animate({ opacity: 0.4, }, 2000, 
       function(){ $("#w03").animate({ opacity: 1}, 600) 
       animate_loop(); 
      });  
    } 
    animate_loop(); 

    animate_loop = function animate_loop(){ 
      $("#w04").animate({ opacity: 0.4, }, 2500, 
       function(){ $("#w04").animate({ opacity: 1}, 600) 
       animate_loop(); 
      });  
    } 
    animate_loop(); 
}); 
+0

@miro你是什么意思? – Borsn 2015-02-08 01:19:15

+0

您正在为不同的div使用相同的功能。它在第二个启动后立即调用相同的功能。为什么eveything包装在文档中准备好了? – Miro 2015-02-08 01:19:33

+0

你的HTML是什么样的? – Miro 2015-02-08 01:20:27

回答

1

如果你想要更多的控制使用下面的代码。我强烈建议使用添加一个类,然后通过CSS动画而不是制作一个jQuery循环。

这里有一个新的演示:http://jsfiddle.net/mirohristov/gw8kskom/1/

$(document).ready(function(){ 
    $('#w01').delay(1000).queue(function(){ 
     $(this).addClass("go"); 
    }); 

    $('#w02').delay(1500).queue(function(){ 
     $(this).addClass("go"); 
    }); 

    $('#w03').delay(2000).queue(function(){ 
     $(this).addClass("go"); 
    }); 

    $('#w04').delay(2500).queue(function(){ 
     $(this).addClass("go"); 
    }); 
}); 
+0

这看起来不错。唯一的问题是我没有使用列表,只是div。在css中尝试使用它自己的类,它不起作用。我认为这是因为... – Borsn 2015-02-08 01:56:21

+0

名单与它无关。只需从这个小提琴的CSS复制eveything并粘贴到您的