При применении CSS-преобразования на основе наведения для моего элемента, который содержит заголовок, сводку и некоторые другие элементы, все дочерние элементы будут перемещаться во второй раз, когда я наведу на них курсор внутри элемента.
По сути, родитель и его дочерние элементы (название, выделение ...) будут анимированы впервые, когда я наведу на них курсор. (это предполагаемое поведение).
Но, если я наведу курсор на заголовок, он будет применять анимацию к заголовку индивидуально, во второй раз.Таким образом, заголовок будет изменен в первый раз, скажем, на 10 пикселей вверх, а когда я наведу на него курсор, он снова увеличится еще на 10 пикселей.Внешний div (родитель) будет перемещаться только один раз. (Нежелательный)
Как будто я применил их собственные анимации к родителю и каждому из дочерних элементов.
Я пытался применить преобразование: нет;всем дочерним элементам, но в моем случае это не поможет.
CSS:
.badge {
flex-basis: 50%;
transform: translateY(0);
transition-duration: 1s;
transition-property: transform;
transition-timing-function: ease-out;
transition-delay: 1s;
backface-visibility: hidden;
}
.badge:last-child {
flex-basis: 100%;
}
.badge :hover {
transform: translateY(-8px);
}
.badge__badge {
margin-bottom: 40px;
margin-right: 40px;
width: 99%;
height: 200px;
background-color: rgb(27, 139, 45);
border-radius: 8px;
color: aliceblue;
box-shadow: 0 4px 2px -2px rgba(0,0,0,0.4);
}
.badge__prime {
margin-left: 20px;
margin-right: auto;
}
.badge__content {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
position: relative;
}
.badge__icon {
width: 40px;
height: auto;
margin: 10px;
}
.badge__highlight {
margin-right: auto;
margin-left: 30px;
display: flex;
flex-direction: column;
}
JSX (React):
<div className="badge">
<div className="badge__badge"
style={{ backgroundColor: this.props.backgroundColor }}>
<div className="badge__content">
{this.props.prime ? <h4 className="badge__prime">PRIME</h4>
: <h4 className="badge__prime">Free</h4>}
<h2 className="badge__title">{this.props.titleBadge}</h2>
<div className="badge__highlight">
{this.props.highlightBadge.split('\n').map((i, key) => {
return <div key={key}>{i}</div>;
})}
</div>
</div>
<img className="badge__icon"alt="" src={this.props.iconBadge} />
</div>
</div>
Ожидаемые результаты: родительский div и все его дочерние элементы будут анимироваться один раз при наведении курсора и возвращаться в свое состояние, как только мышь будетза пределами div.
Фактические результаты: Родительский div и все его дочерние элементы однократно анимируются при наведении курсора, и дочерние объекты снова оживляются, если мышь над нимиз них.
Ссылка на jsfiddle, которая показывает мою проблему