Просто добавьте тот же переход в дочерний класс. Взгляните ниже:
.parent {
width: 200px;
height: 100px;
padding: 25px;
background-color: grey;
transition: width 0.25s;
}
.parent:hover {
width: 300px;
}
.child {
width: 200px;
height: 100%;
background-color: blue;
transition: width 0.25s;
}
.parent:hover .child {
width: 300px;
transition-delay: 0.25s;
}
<h3>Hover Over</h3>
<div class="parent">
<div class="child"></div>
</div>
Если вы скажете, что .child
будет иметь ширину 100%, значит, он действительно будет следовать ширине своего родителя независимо от того, какая ширина это. Чтобы он имел переход с задержкой, .child
должен иметь начальную ширину. Но если вы настаиваете на том, чтобы у ребенка была ширина 100%, возможно ли использовать JS / JQuery? Если это так, проверьте фрагмент, который я имею ниже:
$(document).ready(function() {
var width = $('.child').width();
$('.child').css({
'width': width
});
$('.parent').hover(function() {
setTimeout(function() {
$('.child').css({
'width': 'calc(100%)'
})
}, 500)
}, function() {
$('.child').css({
'width': width
});
});
});
.parent {
width: 200px;
height: 100px;
padding: 25px;
background-color: grey;
transition: width 0.25s;
}
.parent:hover {
width: 300px;
}
.child {
width: 100%;
height: 100%;
background-color: blue;
transition: .2s width 0.25s;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h3>Hover Over</h3>
<div class="parent">
<div class="child"></div>
</div>