我的任务是在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>
此解决方案正常。但问题是这个脚本越来越多地占用处理器和内存。我不是一个javascript程序员。有谁能告诉我如何调用垃圾收集器或什么? =)
答案 0 :(得分:1)
你不需要setInterval()
在$ .animate中使用回调
function moveTextUp()
{
$(".carousel-block").animate(
{"top": startOffsetMinus},
{
duration: 10000/*ms*/,
easing: "linear",
complete: moveTextUp
}
);
}
答案 1 :(得分:0)
完成。作品!
<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>