代码之家  ›  专栏  ›  技术社区  ›  klode

使用伪元素更改css转换类

  •  2
  • klode  · 技术社区  · 6 年前

    我正在开发React应用程序。

    我使用了两个带有after伪元素的css类来添加一个直角三角形和一个直角三角形

       .triangle-right::after {
            content: "\25B6";
            font-size: 10px;
        }
        .triangle-down::after {
            content: "\25BC";
            font-size: 10px;
        }
    

    我从改变元素类别的两个三角形过渡。

    <span className={(this.state.isOpen ? 'triangle-down' : 'triangle-right')}></span>
    

    是否可以使用css转换来设置更改的动画?

    CodePen

    1 回复  |  直到 6 年前
        1
  •  2
  •   Ted    6 年前

    是的,但不像你做的那样。尝试以下操作:

    .triangle-right:after {
        content: "\25B6";
        display: inline-block;
        font-size: 10px;
        transition: transform 200ms;
    }
    .triangle-right.is-open:after {
        transform: rotate(90deg);
    }
    

    还有这个html

    <span className={`triangle-right${this.state.isOpen ? ' is-open' : ''}`} />
    

    这样做的目的是旋转原始图标,而不是将其更改为新图标(无法使用字体设置动画)。

    See it working in this demo.