我正在尝试在滑块上创建一个文本动画循环... 我试过循环,但它没有工作.. 你能告诉我如何永远循环这个脚本..谢谢
<script>
$(document).ready(function() {
$("#header").hide();
var headerOne='I';
var headerTwo='Am';
var headerThree='So';
var headerFour='Cool';
$("#header").html(headerOne);
$("#header").fadeIn(1000);
$('#header').delay(1000).fadeOut(1000,function(){
$(this).html(headerTwo).fadeIn(1000);
$('#header').delay(1000).fadeOut(1000,function(){
$(this).html(headerThree).fadeIn(1000);
$('#header').delay(1000).fadeOut(1000,function(){
$(this).html(headerFour).fadeIn(1000).delay(1000).fadeOut(1000);
});
});
});
});
</script>
谢谢!
答案 0 :(得分:12)
如果你清理一下你的代码。您可以意识到不需要setInterval
。只需使用最后一个回调来重复动画。
$(function () {
var $header = $("#header");
var header = ['I', 'Am', 'So', 'Cool'];
var position = -1;
!function loop() {
position = (position + 1) % header.length;
$header
.html(header[position])
.fadeIn(1000)
.delay(1000)
.fadeOut(1000, loop);
}();
});
答案 1 :(得分:0)
你可以使用recurence,最后fadeOut
将在完成时执行重复功能。
function repeat() {
$("#header").hide();
var headerOne='I';
var headerTwo='Am';
var headerThree='So';
var headerFour='Cool';
$("#header").html(headerOne);
$("#header").fadeIn(1000);
$('#header').delay(1000).fadeOut(1000,function() {
$(this).html(headerTwo).fadeIn(1000);
$('#header').delay(1000).fadeOut(1000,function() {
$(this).html(headerThree).fadeIn(1000);
$('#header').delay(1000).fadeOut(1000,function() {
$(this).html(headerFour).fadeIn(1000).delay(1000).
fadeOut(1000, repeat);
});
});
});
}
$(document).ready(function() {
repeat();
});
答案 2 :(得分:-1)
创建递归和自执行函数并将其用作最终回调:
P.S。自由地清理你的代码。
$(function () {
(function repeat() {
var header = $("#header"),
headerOne = 'I',
headerTwo = 'Am',
headerThree = 'So',
headerFour = 'Cool';
header.text(headerOne)
.fadeIn(1000)
.delay(1000)
.fadeOut(1000, function () {
header.text(headerTwo)
.fadeIn(1000)
.delay(1000)
.fadeOut(1000, function () {
header.text(headerThree)
.fadeIn(1000)
.delay(1000).fadeOut(1000, function () {
header.text(headerFour)
.fadeIn(1000)
.delay(1000)
.fadeOut(1000, repeat);
});
});
});
})();
});