Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript react transitiongroup和flexbox:为因显示/隐藏其他元素而改变大小的元素设置动画?_Javascript_Css_Reactjs_Ecmascript 6_Flexbox - Fatal编程技术网

Javascript react transitiongroup和flexbox:为因显示/隐藏其他元素而改变大小的元素设置动画?

Javascript react transitiongroup和flexbox:为因显示/隐藏其他元素而改变大小的元素设置动画?,javascript,css,reactjs,ecmascript-6,flexbox,Javascript,Css,Reactjs,Ecmascript 6,Flexbox,我在react UI中使用不同的动画选项。在一个UI中,我有一个flex box容器和三个flex box。它们按预期显示,并且在切换框时动画可以正常工作。(我正在使用Velocity ui以防出现问题) flex grow设置为1的框A和框C。 框B具有固定宽度 因此,如果我们切换其中一个框,则至少有一个其他框的宽度会增加/减少 正如我提到的,我们正在切换的元素上的动画正在按预期工作。 我的问题:有没有一种方法可以在其他元素作为响应而增长/收缩时设置动画? 这是BoxesView: cons

我在react UI中使用不同的动画选项。在一个UI中,我有一个flex box容器和三个flex box。它们按预期显示,并且在切换框时动画可以正常工作。(我正在使用Velocity ui以防出现问题)

flex grow设置为1的框A和框C。
框B具有固定宽度

因此,如果我们切换其中一个框,则至少有一个其他框的宽度会增加/减少

正如我提到的,我们正在切换的元素上的动画正在按预期工作。
我的问题:有没有一种方法可以在其他元素作为响应而增长/收缩时设置动画?

这是BoxesView:

const BoxesView = (props) => {

    const viewState = props.ViewState;

    console.log('viewState', viewState);

    return (
        <div>
            <div>
                <button className="btn btn-primary" onClick={(evt) => viewState.toggleBox('A')}>Toggle Box A</button>
                <button className="btn btn-primary"  onClick={(evt) => viewState.toggleBox('B')}>Toggle Box B</button>
                <button className="btn btn-primary"  onClick={(evt) => viewState.toggleBox('C')}>Toggle Box C</button>
            </div>
            <TransitionGroup component="div" className="boxes_container">
                { viewState.showBoxA ? <Box id="A"></Box> : null }
                { viewState.showBoxB ? <Box id="B"></Box> : null }
                { viewState.showBoxC ? <Box id="C"></Box> : null }
            </TransitionGroup>
        </div>
    )
}

也许你可以做个演示?除非您的“切换”正在更改
display
属性,否则简单的转换应该可以。
#boxA{
    background-color: #F00;
    flex: 1 0 auto;


}

#boxB{
    background-color: #0F0;
    flex: 0 0 580px
}

#boxC{
    background-color: #00F;

    flex: 1 0 auto;
}

.boxes_container{
    display: flex;
    flex-direction: row;
    //align-items: center;
    justify-content: center;
    width: 100%;

    .box{
        padding: 20px;


    }
}