結論
let time = $(el).css("transition-duration");
if(/ms$/.test(time)){ // msかどうか
time = parseFloat(time);
} else {
time = parseFloat(time) * 1000;
}
setTimeout(()=>{
// Do something...
}, time);
解説
CSSのtransition
を用いたアニメーションで、animate
のコールバック関数みたいにするにはどうするか考えてみました。
要はアニメーションにかかる秒数をsetTimeout
したらいいのです。
transitionのアニメーションにかかる秒数はCSSのtransition-duration
プロパティを取るとわかります。
CSSのtime
型のデータには秒とミリ秒が指定できるので、正規表現でミリ秒かどうかを判断して、ミリ秒の場合は1000かけます。
最後に、それをsetTimeout
したら終わりです。