我想要做的就是如果用戶再次按下按鈕,則從頭開始轉換。現在的問題是,如果用戶點擊兩次或更多的按鈕,它不會正確啓動兩個動畫(一個接一個)。Javascript一個接一個地轉換
因此,現在轉換正在工作,但如果用戶多次單擊該按鈕,則無法完成此項工作。
let button = document.querySelector("button")
let box = document.querySelector(".box")
button.onclick =() => {
box.style.transform = "";
anim1(function(){
anim2(function() {
})
})
}
function anim1(cb) {
box.style.transition = ""
box.clientHeight;
box.style.transition = "all 1s";
box.style.transform = "translateX(50px)";
setTimeout(() => {
cb()
},1000)
}
function anim2(cb) {
box.style.transition = ""
box.clientHeight;
box.style.transition = "all 1s";
box.style.transform = "translateX(350px)";
setTimeout(() => {
cb()
},1000)
}
活生生的例子https://jsfiddle.net/kzjpb55f/