动画材质图标转换:汉堡到 X

ero*_*c83 2 icons angular-material angular angular-animations

长期读者,第一次海报。我想让一个材料汉堡在单击时转换为“X”,然后在 Angular 应用程序中再次单击时转换回来。网站https://material.io/design/iconography/animated-icons.html#transitions 显示有我想要的动画,但没有关于如何做的文档。

我尝试了一种 CSS 方法,但它没有显示出来,最好使项目与材质图标保持一致。

<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
  <span class="sr-only">Toggle navigation</span>
  <span class="icon-bar top-bar"></span>
  <span class="icon-bar middle-bar"></span>
  <span class="icon-bar bottom-bar"></span>
</button>

CSS

navbar-toggle {
  border: none;
  background: transparent !important;

  &:hover {
    background: transparent !important;
  }

  .icon-bar {
    width: 22px;
    transition: all 0.2s;
  }
  .top-bar {
    transform: rotate(45deg);
    transform-origin: 10% 10%;
  }
  .middle-bar {
    opacity: 0;
  }
  .bottom-bar {
    transform: rotate(-45deg);
    transform-origin: 10% 90%;
  }
}

.navbar-toggle.collapsed {
  .top-bar {
    transform: rotate(0);
  }
  .middle-bar {
    opacity: 1;
  }
  .bottom-bar {
    transform: rotate(0);
  }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码是材质图标的解决方法。当我运行上面的代码时,我得到一个没有动画的透明按钮。如果有人知道如何使用引导程序从汉堡包到“X”的角度过渡,我将不胜感激。

Dou*_* P. 6

使用角度动画(没有引导程序)制作了这个简单的堆栈闪电战,仍然需要在动画状态的 CSS 中做一些工作,以使其漂亮和流畅,但您可以理解。