我有3个按钮,并有照片-IM按下按钮后,我应该看到照片(如果我点击按钮爱好者,我看到爱好者的照片等)。我的代码:
const headerbtn = document.querySelector(".portfolio-menu");
const headerPhoto = document.querySelector(".portfolio-wrapper");
const allPhoto = headerPhoto.querySelectorAll(".all");
const changePhoto = (name) => {
let elem = headerPhoto.querySelectorAll(name);
allPhoto.forEach((x) => {
x.classList.add("hidden");
x.classList.remove("animated", "fadeIn");
});
no.style.display = "none";
allBtn.forEach((x) => {
x.classList.remove("active");
});
elem.forEach((x) => {
x.classList.remove("hidden");
x.classList.add("animated", "fadeIn");
});
};
function changeAll() {
allPhoto.forEach((x) => {
x.classList.add("hidden");
x.classList.remove("animated", "fadeIn")
});
allPhoto.forEach((x) => {
x.classList.add("animated", "fadeIn");
x.classList.remove("hidden");
})}
headerbtn.querySelector(".all").addEventListener("click", changeAll);
headerbtn.querySelector(".lovers").addEventListener("click", () => {
changePhoto(".lovers");
});
headerbtn.querySelector(".chef").addEventListener("click", () => {
changePhoto(".chef");
});
}});
隐藏类的值为display=block
。因此,我按下类为“lovers”的按钮,我只看到情侣的照片,它们以动画形式出现,之后我按下类为“all”的按钮,我看到所有照片,但不是所有照片都有动画(照片“lovers”没有动画,但其他的都有,但我在changeAll()
中添加了一个类动画,控制台日志显示给我,但仍然没有动画)。我再次按下“恋人”按钮-我看到了恋人的照片,但他们也没有动画。
1条答案
按热度按时间jjhzyzn01#
您可以使用requestAnimationFrame或setTimeout来确保在删除类的时间和重新添加类的时间之间有一个刻度。
运行代码段并多次单击"全部显示"按钮: