【问题标题】:CSS Transition not working on class toggle JavaScriptCSS 转换不适用于类切换 JavaScript
【发布时间】:2020-05-24 12:02:18
【问题描述】:

您好,这可能是一件简单而愚蠢的事情,但我不明白为什么我的 css 转换无法处理 JavaScript 的类切换/删除/添加功能。我想我对 css 转换和 vanilla JS 有一个根本的误解......我添加了一个 codepen。 https://codepen.io/skwisgaar/pen/Yzygvqz

根据需要添加和删除该类,但过渡很尖锐,我的 css 中的过渡被忽略了。我不认为这是我的 css 的问题,我添加了一个悬停来测试没有在 JS 中添加/删除的过渡。这似乎是 JS 的默认行为?在 JS 中更改类之前或之后,我是否需要添加一些东西才能使转换工作?任何帮助表示赞赏。

  const btn = document.querySelector('#show-hide');
  const pagenav = document.querySelector('#page-nav');
  const showhide = () => {
    if(pagenav.classList.contains('hidden')){
      pagenav.classList.remove('hidden');
    } else {
      pagenav.classList.add('hidden');
    } 
  }
  btn.onclick = showhide;

这是我的 CSS:

#page-nav {
    opacity:1;
    position:fixed;
    bottom:0;
    width:100%;
    z-index:2;
    @include transition(opacity 500ms);
    &.hidden {
        opacity:0;
    }
    &:hover {
      opacity:0;
    }
}

【问题讨论】:

    标签: javascript css ecmascript-6 sass fade


    【解决方案1】:

    您对“隐藏”类的风格有冲突。

    当隐藏类被应用时,它被设置为显示:无,因此它基本上不包含在页面布局中,因此无法转换其他属性。

    【讨论】:

    • 天哪。哈哈我工作太久了。我查看了顺风文档并没有看到课程,或者可能只是将其划分出来。最终在我的项目和我的代码笔中做了同样的事情。认为这是愚蠢的 smh.Thnx 伙计,我以为我在这里要疯了,我真的很感激! T__T
    猜你喜欢
    • 2021-12-07
    • 1970-01-01
    • 2017-07-02
    • 2017-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    相关资源
    最近更新 更多