jquery - 完成后一遍又一遍地循环 jQuery 动画?

标签 jquery loops callback jquery-animate

我正在创建一个需要老式 CRT 效果的网站。我的电视静态效果很好,但我需要一个粗的扭曲条来上下移动。

为此,我制作了一个 100% 宽度、200px 高的 div,我想从页面顶部开始,向下移动,到达底部后,回到顶部,然后重新开始。

我让它一直工作到循环部分。它向下移动,重置到顶部,然后我希望动画的功能自行重复。

这是我的代码:

$(document).ready(function()
{
    //vars
var windowHeight = $(window).height();
var lineHeight = $('#bar').height();
var desiredBottom = windowHeight - lineHeight;
var newPosition = desiredBottom;
var moving = $('#bar');

animate_loop = function()
{
//FUNCTION ACTIONS
moving.animate({top:newPosition},
{
    duration: 2000,
    complete: function() 
    //function on completion - reset to top
    {
        $('#bar').animate({top:0},100);

    }


});

}//end of animate_loop = function()

animate_loop();

});// end of document ready

我的栏在我设置动画时向下移动,它完美地回到顶部,但是然后......什么也没有。在此之前我尝试了几种方法,但后来我在这里看到了一个动画循环线程,它以完全相同的方式布局。有人能指出为什么当我尝试执行“animate_loop();”时我的动画不会循环吗?快结束了吗?

最佳答案

为了清楚起见,省略文档就绪处理程序和配置变量,动画代码本身最简单的选择只是一个完成回调加上一个立即调用的函数表达式

(function loop() {
    moving.animate({top: newPosition}, 2000)
          .animate({top: 0}, 100, loop);
})();

这四行代码块将自动启动(即不需要单独的显式调用),不会创建新变量(loop 仅在其自身范围内可见)并且不使用额外的内容计时器。

关于jquery - 完成后一遍又一遍地循环 jQuery 动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18688989/

相关文章:

java - 如何保存列表中的非常100条记录

javascript - 重复数组 x 次,然后再次重复删除第一项,直到数组消失

c++ - 使用 C++ 在 Linux 中创建定时器队列

ios - 如何处理 phonegap cordova 上的 iOS 通知回调?

javascript - jQuery UI 可拖动和可排序不能像我想要的那样工作

javascript - 根据滚动位置突出显示链接

flash:for循环运行缓慢

javascript - Node js谷歌翻译api没有回调

javascript - 用 ContentEditable 属性替换 textarea - Javascript 运行多次

javascript - 如何在选择提前输入建议/使用 tab 键自动完成时绑定(bind)自定义函数?