私はdivをフェードインおよびフェードアウトしてから繰り返すことができるjqueryスクリプトを作成しました。コードは正常に動作します。ただし、遅延を追加しようとすると(divがフェードアウトする前に数秒待機したい)、正しく機能しません。コード内のいくつかの場所に遅延を追加しようとしましたが、どれも正しく機能していないようです。 Jqueryバージョン1.9.1を使用しています
これが私が書いたスクリプトです:
$(document).ready(function(){
ShowPostDiv(0);
});
function ShowPostDiv(divIndex)
{
$(".home_entry_txt").hide();
if(divIndex >= $(".rotate_hide").length)
{
divIndex = 0;
}
var divPostHtml = $(".rotate_hide:eq("+divIndex+")").html();
$(".home_entry_txt").html(divPostHtml);
$(".home_entry_txt").fadeIn(3000, function(){
$(".home_entry_txt").fadeOut("slow");
});
divIndex++;
setTimeout("ShowPostDiv("+divIndex+")", 4000);
}
あなただけ書くことができます
$(".home_entry_txt").fadeIn(3000).delay(1000).fadeOut("slow");
これを試して
$(document).ready(function(){
ShowPostDiv(0);
});
function ShowPostDiv(divIndex)
{
$(".home_entry_txt").hide();
if(divIndex >= $(".rotate_hide").length)
{
divIndex = 0;
}
var divPostHtml = $(".rotate_hide:eq("+divIndex+")").html();
$(".home_entry_txt").html(divPostHtml);
$(".home_entry_txt").fadeIn(3000, function(){
setTimeout(function(){
$(".home_entry_txt").fadeOut("slow");
},4000);
});
divIndex++;
}
.delay()を試しましたか?何かのようなもの:
$(".home_entry_txt").fadeIn().delay(200).queue(function(next) {
$(".home_entry_txt").fadeOut("slow");
});
問題は、最初のパラメーターとして関数を渡す必要があり、文字列を渡すことだと思います。 setTimeout()
行を次のように置き換えてみてください:
setTimeout(function(){
ShowPostDiv(divIndex);
}, 4000);