【问题标题】:Setting style animation with javascript not working用javascript设置样式动画不起作用
【发布时间】:2022-01-26 14:32:49
【问题描述】:

我正在尝试为移动设备创建一个汉堡菜单。我遵循了一个教程,一切都很好,直到我进入 js 部分。这是js代码:

const navSlide = () => {
    const burger = document.querySelector('.burger');
    const nav = document.querySelector('.nav-links');
    const navLinks = document.querySelectorAll('.nav-links li');
    
    burger.addEventListener('click', () => {
        //toggle nav
        nav.classList.toggle('nav-active');

        //Animate links
        navLinks.forEach((link, index) => {
            if(link.style.animation)
            {
                link.style.animation = '';
            }
            else
            {
                console.log(link.style.animation);
                link.style.animation = 'navLinkFade 0.5s ease forwards ${index / 7 + 0.3}s';
                console.log(link.style.animation);
            }
        });
    });


};

navSlide();

基本上它是激活菜单从右侧浮动,然后每个菜单项应该缓和。 问题是菜单项的动画不存在。这是应该设置此动画的行:

link.style.animation = 'navLinkFade 0.5s ease forwards ${index / 7 + 0.3}s';

我把两个控制台日志放在它周围,看看会发生什么,而且两次都是空字符串。我不明白为什么会这样。我不太擅长 js,所以可能这真的很愚蠢。我已经看了一段时间了,所以如果有人可以帮助我,我会非常认真。

【问题讨论】:

  • 您在设置link.style.animation 时是否忘记使用反引号(`)。要使用模板文字,它必须使用反引号
  • ` navLinkFade 0.5s 缓进 ${index / 7 + 0.3} ` 像这样

标签: javascript css css-animations


【解决方案1】:

把 link.style.animation 改成这样:

link.style.animation = `navLinkFade 0.5s ease forwards ${index / 7 + 0.3}`;

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-26
  • 2017-06-25
  • 1970-01-01
  • 1970-01-01
  • 2014-06-19
  • 2015-03-27
相关资源
最近更新 更多