私はJavaScriptとCSSで少しfadeOut関数を書いたバニラのjavascript(JQueryは使用できません)でWebサイトを作成しています。次の関数が呼び出される前にfadeOutが終了するようにしたいと思います。これを行うために、私はコールバック関数を使用しようとしています - 関数の唯一の目的は、第2の関数が呼び出される前に最初の関数が確実に完了するようにすることです。私はいくつかのチュートリアルを読んだが、私が間違ってやっているかを把握することはできません - 私は、第二の機能に到着したことがない:Javascriptでコールバック関数をデバッグしています:2番目の関数に到達していません
function mformSubmit() {
doCallback(fadeOut, function() { setupM });
}
function fadeOut() {
for(var i=0; i<m_types.length; i++) {
if (document.getElementById(m_types[i]).className != 'selected') {
document.getElementById(m_types[i]).style.opacity = 0;
} else {
selection = m_types[i]; }
};
}
function doCallback(callback) {
if (typeof callback === "function") {
callback();
}
}
function setupM() {
alert("I arrived in the setup function");
}
、関連するCSSビット:
label.unselected {
background-color: #fff;
float: left;
padding: 5px;
border: 2px solid #CCC;
border-radius: 8px;
box-shadow: rgba(0,0,0,0.04) 15px 15px;
margin: 10px 10px 20px 30px;
/* Opacity tricks */
-webkit-transition: opacity 800ms ease;
-moz-transition: opacity 800ms ease;
-o-transition: opacity 800ms ease;
transition: opacity 800ms ease;
}
感謝あらかじめ!
'doCallback'は1つのパラメータのみを認識します。渡された2番目の関数は無視されます。 –
あなたも同様に質問に答えるかもしれません:) –
コールバックの必要性はまったくありません。すべて同期しており、コールバックはCSSアニメーションが終了するのを待たないでしょうか? – adeneo