基于父 CSS 状态的条件子动画(带有用于 React 的样式组件)

Posted

技术标签:

【中文标题】基于父 CSS 状态的条件子动画(带有用于 React 的样式组件)【英文标题】:Conditional child animations based on parent CSS state (with styled-components for React) 【发布时间】:2017-02-25 18:58:57 【问题描述】:

对于 React 使用 styled-components,是否有任何替代方法

.btn:hover:not(.inactive)>.btn-top,
.btn.active:not(.inactive)>.btn-top 
  z-index: 2;
  /* transform here */

.btn:hover:not(.inactive)>.btn-bottom,
.btn.active:not(.inactive)>.btn-bottom 
  z-index: 1;
  /* transform here */

(使用嵌套条件选择器确保所有动画在同一个 DOM 中,但不同的 z-index 级别正确运行/完成)?

(对不起,标题长度。没有代表创建样式组件标签。)

【问题讨论】:

【参考方案1】:

:hover:not(.inactive) > &, .active:not(.inactive) > & 用作 (Sass) 选择器。

谨慎使用。在多个父母有条件类的情况下(.active.inactive 这里),像.active & 这样的东西可能会产生副作用。然后,另一种选择是pass React props to descendants for conditional styling with styled-components

geleen(维护者)在 gitter 上回答。在此处添加以完成和 google-fu。

【讨论】:

以上是关于基于父 CSS 状态的条件子动画(带有用于 React 的样式组件)的主要内容,如果未能解决你的问题,请参考以下文章

React 父/子状态更改设计问题

带有变换的css关键帧动画不适用于SVG

在 React 应用程序中添加 CSS @keyframes 动画以更改状态

如果它有带有 CSS 的子元素,则将样式应用于父元素 [重复]

Angular 4同时为父组件和子组件设置动画

动画不适用于带有tailwindcss的className中的条件