【发布时间】:2020-11-22 17:25:57
【问题描述】:
我的过渡不透明度仅适用于 0 到 1。对于 1 到 0,我应该怎么做?如果我输入 transition: all .3s ease-in-out; 它可以工作,但这次会出现调整大小的问题。我该怎么办?
另外,我可以在 javascript 中调整屏幕大小时制作动画停止器,但有没有一种简单的方法可以在 CSS 中制作它?
代码如下:
const body = document.body;
const hamburger = document.getElementById("hamburger");
const menu = document.getElementById("menu");
const links = document.querySelectorAll(".menu li");
hamburger.addEventListener("click", () => {
hamburger.classList.toggle("clicked");
menu.classList.toggle("active");
body.classList.toggle("no-scroll");
links.forEach(link => {
link.addEventListener("click", () => {
body.classList.remove("no-scroll");
hamburger.classList.remove("clicked");
menu.classList.remove("active");
});
});
});
.menu {
position: absolute;
background: $purpleGradient;
//transform: translateY(-100%);
height: 100vh;
width: 100vw;
top: 0;
left: 0;
z-index: 99;
opacity: 0;
visibility: hidden;
transition: opacity .3s ease-in-out;
}
// Menu Active
.active {
visibility: visible;
opacity: 1;
transition: opacity .3s ease-in-out;
}
<header class="header">
<nav class="flex flex-ai-center flex-jc-sb container">
<div class="logo">
<a href="">LOGO</a>
</div>
<ul class="menu flex flex-fd-column flex-jc-center flex-ai-center" id="menu">
<li><a href="">Home</a></li>
<li><a href="">Pricing</a></li>
<li><a href="">Investments</a></li>
<li><a href="">Support</a></li>
</ul>
<div class="hamburger flex flex-ai-center flex-jc-center" id="hamburger">
<span></span>
</div>
</nav>
</header>
【问题讨论】:
-
将您的 JavaScript 代码添加到帖子中。
-
这段代码中没有过渡或动画!你确定这是整个代码吗?
-
过渡:不透明度 .3s ease-in-out;
-
对不起,我添加了javascript部分
标签: html css css-animations css-transitions