一个放大镜,一个叉叉,默认叉叉不出现(透明度0),点击按钮,出现叉叉,放大镜透明度变成0.
还要把pointer-events设置成none,还要做一个动画效果。

HTML部分:

<a class="nav-btn-container" href="#">
    <img class="search-btn" src="images/search-icon.svg" >
    <img class="close-btn" src="images/close-icon.svg" >
</a>

CSS部分:

.nav-btn-container {
    display: flex;
    position: relative;
}

.nav-btn-container img {
    position: absolute;
}

.nav-btn-container .close-btn {
    opacity: 0;
    pointer-events: none;
    transform: translateY(-8px);
    transition: 300ms;
}

.nav-btn-container .search-btn {
    pointer-events: auto;
    transition: 300ms;
}

.nav-btn-container.active .search-btn {
    opacity: 0;
    pointer-events: none;
    transform: translateY(-8px);
}

.nav-btn-container.active .close-btn {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

JS部分:

const navBtnContainer = document.querySelector(".nav-btn-container")
const closeBtn = document.querySelector(".close-btn")
const searchBtn = document.querySelector(".search-btn")

searchBtn.addEventListener("click", () => {
    searchBox.classList.add("active")
    navBtnContainer.classList.add("active")
})

closeBtn.addEventListener("click", () => {
    searchBox.classList.remove("active")
    navBtnContainer.classList.remove("active")
})
最后编辑:2021年06月26日 ©著作权归作者所有

发表评论