使用javascript编写无休止的文本

使用javascript编写无休止的文本,javascript,jquery,Javascript,Jquery,我的任务是在div块中创建包含文本块的页面。 以下是我的解决方案: <script> var startOffset = 0; var startOffsetPlus; var startOffsetMinus; $(document).ready(function () { startOffset = $(".carousel-item").last

我的任务是在div块中创建包含文本块的页面。 以下是我的解决方案:

  <script>
            var startOffset = 0;
            var startOffsetPlus;
            var startOffsetMinus;
            $(document).ready(function () {

                startOffset = $(".carousel-item").last().offset().top;
                startOffsetPlus = "+="+ startOffset +"px";
                startOffsetMinus = "-="+ startOffset +"px";
                //endless loop call
                setInterval('beginEndlessLoop()', 1000/*Starting delay in ms*/);
            });
            function beginEndlessLoop(){
                setInterval('moveTextUp()', 0 /*ms*/);
            }
            function moveTextUp() {
                $(".carousel-block").animate(
                    {"top": startOffsetMinus}, 
                    {
                        duration: 10000/*ms*/, 
                        easing: "linear"}
                    );
                //move blocks to start position
                $(".carousel-block").animate({"top": startOffsetPlus}, 0/*ms*/);
            }
</script>

var startOffset=0;
var STARTOFSETPLUS;
var startOffsetMinus;
$(文档).ready(函数(){
startOffset=$(“.carousel item”).last().offset().top;
startOffset plus=“++=”+startOffset+“px”;
startOffset减号=“-=”+startOffset+“px”;
//无止境循环呼叫
setInterval('beginEndlessLoop()',1000/*启动延迟,单位为毫秒*/);
});
函数beginEndlessLoop(){
setInterval('moveTextUp()',0/*ms*/);
}
函数moveTextUp(){
$(“.carousel块”).animate(
{“top”:startOffsetMinus},
{
持续时间:10000/*ms*/,,
“线性”}
);
//将块移动到起始位置
$(“.carousel块”).animate({“top”:startOffsetPlus},0/*ms*/);
}
这个解决方案很好用。但一个问题是,这个脚本占用处理器和内存越来越多。我不是javascript程序员。有谁能告诉我怎么打电话给垃圾收集器之类的吗?=)

您不需要setInterval()

在$.animate中使用回调

function moveTextUp()
{
 $(".carousel-block").animate(
                    {"top": startOffsetMinus}, 
                    {
                        duration: 10000/*ms*/, 
                        easing: "linear",
                        complete: moveTextUp
                    }

                    );
}
完成了。工作

 <script>
            var startOffset = 0;
            var startOffsetPlus;
            var startOffsetMinus;
            $(document).ready(function () {
                startOffset = $(".carousel-item").last().offset().top;
                startOffsetPlus = "+="+ startOffset +"px";
                startOffsetMinus = "-="+ startOffset +"px";
                window.setTimeout(function(){moveTextUp()}, 3000);
            });
            function moveTextUp() {
                $(".carousel-block").animate({"top": startOffsetMinus}, 10000, 'linear', function() {
                    $(".carousel-block").animate({"top": startOffsetPlus}, 0);
                    moveTextUp();
                });
            }
</script>

var startOffset=0;
var STARTOFSETPLUS;
var startOffsetMinus;
$(文档).ready(函数(){
startOffset=$(“.carousel item”).last().offset().top;
startOffset plus=“++=”+startOffset+“px”;
startOffset减号=“-=”+startOffset+“px”;
setTimeout(函数(){moveTextUp()},3000);
});
函数moveTextUp(){
$(“.carousel块”).animate({“top”:startOffsetMinus},10000,“线性”,函数(){
$(“.carousel块”).animate({“top”:startOffsetPlus},0);
moveTextUp();
});
}

您应该真正查找setInterval的功能。这将为你的应用程序为什么会消亡提供第一条线索。您的代码必须完全重写,基本上在这一点上,您是在要求别人为您编写代码,而不是问一个问题。@Anubis在您创建了一个无休止的循环之后,您会期待什么?当然,CPU时间和内存的无休止的浪费。@dku.rajkumar:对不起,我不明白你的意思。@kitgui.com:我唯一要问的是,有人使用无休止的jquery动画,可以给我一个建议。我不是要求对我做什么。我已经做过了。@Teemu:我希望每一次循环迭代都会使用与前一次相同的内存和cpu。同样的结果。内存和cpu使用率正在增加尝试完成:设置超时(moveTextUp,500)