我正在用 css 和 javascript 制作一个导航栏,但遇到了一个问题,当我在 webkit 动画延迟中添加一个表达式时它不起作用,但是当我输入一个数字时它就起作用了。
这不起作用:
link.style.webkitAnimation = "navLinkFade ease 0.5s forwards ${index / 7 + 0.3}s";
这有效:
link.style.webkitAnimation = "navLinkFade ease 0.5s forwards 2s";
此动画适用于导航的 li 元素,我希望它们一个接一个地淡入。
这是我的代码:
css
@-webkit-keyframes navLinkFade {
from {
opacity: 0;
transform: translateX(50px);
}
to {
opacity: 1;
transform: translateX(0px);
}
}
@-moz-keyframes navLinkFade {
from {
opacity: 0;
transform: translateX(50px);
}
to {
opacity: 1;
transform: translateX(0px);
}
}
@-ms-keyframes navLinkFade {
from {
opacity: 0;
transform: translateX(50px);
}
to {
opacity: 1;
transform: translateX(0px);
}
}
@keyframes navLinkFade {
from {
opacity: 0;
transform: translateX(50px);
}
to {
opacity: 1;
transform: translateX(0px);
}
}
js:
const navSlide = () => {
const burger = document.querySelector('.burger');
const nav = document.querySelector('.nav-links');
const navLinks = document.querySelectorAll('.nav-links li');
burger.addEventListener('click', () => {
nav.classList.toggle('nav-active');
navLinks.forEach((link, index) => {
if(link.style.animation) {
link.style.animation = '';
}
else {
link.style.webkitAnimation = "navLinkFade ease 0.5s forwards ${index / 7 + 0.3}s";
console.log(link.style.animation);
}
});
});
}
navSlide();
提前致谢!