我的查詢是: 每當我第一次按下任何按鈕時,圖像將在4秒內成功轉換到所需的濾鏡。但是當我按下另一個按鈕時,過渡會立即發生,無需4秒。每次按下按鈕時,如何在4秒內更改圖片?CSS濾鏡轉換
function change_image() {
document.getElementById("blur").style.filter = "sepia(1)";
}
function change_image_2() {
document.getElementById("blur").style.filter = "grayscale(100%)";
}
function change_image_3() {
document.getElementById("blur").style.filter = "blur(5px)";
}
#blur {
transition-duration: 4s;
}
<div id="blur">
<img src="http://placehold.it/300" alt="whatever" height="400" width="300">
</div>
<br>
<button class="btn btn-success" type="button" onclick="change_image()">Sepia</button>
<button class="btn btn-success" type="button" onclick="change_image_2()">Grayscale</button>
<button class="btn btn-success" type="button" onclick="change_image_3()">Blur</button>
我不知道爲什麼動畫過渡只能工作一次,但至少我可以說你應該細化你的功能。如果你有200個過濾器,你會重複200次相同的功能嗎?不,只寫一個並將過濾器作爲參數傳遞:'function change_image(filter){document.getElementById(「blur」)。style.filter = filter; }'並且這樣調用它:'onclick =「change_image('sepia(1)')」','onclick =「change_image('灰度(100%)')」' –