私は、X要素を順番にフェードアウトさせ、もう一度別の関数の実行を終了する関数を記述しようとしています。同時に起動する関数
function fadeOut(pro){
$('.interactive ul li').each(function(i) {
$(this).find('a').delay(200*(i+1)).fadeOut(200,function(){
$('.opening-title').delay(500).fadeOut();
});
showTimeline(pro);
});
}
function showTimeline(pro){
$('.timeline-container').addClass('in-view');
console.log(pro);
}
何らかの理由で 'showTimeline()'が同時に実行され、なぜその理由がわかりませんか?
全JS
$(document).ready(function() {
'use strict';
function init() {
function showPath(pro) {
fadeOut(pro);
}
function fadeOut(pro) {
$('.ul li').each(function(i) {
$(this).find('a').delay(1200 * (i + 1)).fadeOut(200, function() {
$('.title').delay(500).fadeOut();
});
});
showTimeline(pro);
}
function showTimeline(pro) {
$('.container').addClass('in-view');
console.log(pro);
}
$('.path').on('click', function() {
showPath($(this).attr('data-pro'));
});
} //end init
init();
}); //end doc ready
あなたは遅延はおそらく200msのでフェードアウトを延期するのsetTimeoutを使用したループ – epascarello
でそれを呼び出しているので。これは、遅延がスタックの最後にフェードアウト関数をキューに入れるため、showTimeline(pro)が最初に実行される原因にもなります。 – Shilly
showTimelineが各ループにあります – YounesM