我的查询是: 每当我第一次按下任何按钮时,图像将在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%)')”' –