Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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
Css 文本没有随父元素转换,它只是立即弹出_Css_Reactjs_Reactstrap - Fatal编程技术网

Css 文本没有随父元素转换,它只是立即弹出

Css 文本没有随父元素转换,它只是立即弹出,css,reactjs,reactstrap,Css,Reactjs,Reactstrap,如果服务器响应错误消息,我会弹出一个条 例如,如果他们输入了错误的凭据进行登录,该栏将转换为:高度0.5s,并显示来自服务器的错误消息,说明凭据不正确 在一些帮助下,我确实让酒吧过渡期开始工作了。我现在遇到的问题是,文本在转换完成之前呈现,所以看起来很奇怪。本以为它会从父级继承样式,但事实并非如此。无法识别过渡/动画 以下是我的组件: renderMessage() { const { errors } = this.props; if (errors) { r

如果服务器响应错误消息,我会弹出一个条

例如,如果他们输入了错误的凭据进行登录,该栏将转换为:高度0.5s,并显示来自服务器的错误消息,说明凭据不正确

在一些帮助下,我确实让酒吧过渡期开始工作了。我现在遇到的问题是,文本在转换完成之前呈现,所以看起来很奇怪。本以为它会从父级继承样式,但事实并非如此。无法识别过渡/动画

以下是我的组件:

renderMessage() {
    const { errors } = this.props;

    if (errors) {
        return (
            <div 
                className={
                    errors
                    ?
                    'hide-error-message show-error-message'
                    :
                    'hide-error-message'
                }
            >
                <i 
                    onClick={ this.closeMessage } 
                    className='float-right fas fa-times'>
                </i>
                <div
                    dangerouslySetInnerHTML={{ __html: errors.non_field_errors[0] }}>
                </div>
            </div>
        );
    }
}

render() {
    const { errors } = this.props;

    return (
        <div id='error-messages'>
            <div 
                className={ 
                    errors 
                    ? 
                    'hide-error-messages-bar show-error-messages-bar' 
                    : 
                    'hide-error-messages-bar' 
                }>
                <Container>{ this.renderMessage() }</Container>
            </div>
        </div>
    )
}

为transform:translateY向上切换高度变换。由于您的通知栏不在流程中,不会影响任何其他元素,所以只需在Y访问中上下移动它即可。你可以保持你的div的高度,这样文本就不会改变,不会发疯

这是一个代码笔,用按钮切换类

#error-messages {
    position: relative; 
    top: 105px;
    background-color: $croner-red;        
    color: #FFF;

    .hide-error-messages-bar {
        visibility: hidden;
        height: 0;
        transition: height 0.5s ease-out;        
    }

    .hide-error-messages-bar.show-error-messages-bar {
        visibility: visible;
        transition: height 0.5s ease-in;
        height: 65px;
        width: 100%;

        .hide-error-message {
            opacity: 0;
            height: 0;
            padding: 8px 0;
            transition: opacity 2s ease-in;                        
        }

        .hide-error-message.show-error-message {
            opacity: 1;

            i {
                cursor: pointer;
            }
        }
    }
}
   .hide-error-messages-bar {
        transform: translateY(-100vh);
        transition: transform 0.5s ease-out;        
    }

    .hide-error-messages-bar.show-error-messages-bar {
        transform: translateY(5vh);
        width: 100%;
   }