如果服务器响应错误消息,我会弹出一个栏。
例如,如果他们输入了错误的登录凭据,该栏将transition: height 0.5s ease-in
,并显示来自服务器的错误消息,说明凭据不正确。
在一些帮助下,我确实让酒吧过渡到了工作。我现在的问题是在转换完成之前的文本渲染,所以它看起来很奇怪。以为它会从父级继承样式,但不会。不识别过渡/动画。
这是我的组件:
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>
)
}
这是Sass的最新版本。尝试了大约20件事:
#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;
}
}
}
}
答案 0 :(得分:1)
切换transform: translateY()
的高度转换。由于您的通知栏不在流程中且不会影响任何其他元素,只需在Y访问中上下移动它。你可以保持你的div的高度,这样文本就不会发生变化而且会变得疯狂。
这是一个codepen,使用按钮https://codepen.io/anon/pen/oyZPJQ
切换类 .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%;
}