В приведенном ниже примере я создал то, что пытаюсь достичь.
Я добавил эффект наведения на круги, а затем использовал transform: scale(1.1);
, чтобы заполнить промежутки между большим кругом и теми на его стороне.
Этот выглядит хорошо, когда я изменяю размер круга со 100 пикселей до 200 пикселей, но мне нужно, чтобы он работал в любом размере. Я использовал только css, но вы можете использовать JS, чтобы получить размеры и все остальное. У меня такое ощущение, что нужна какая-то тригонометрическая формула, но я понятия не имею, как к ней подойти.
Спасибо!
.circles {
display: flex;
}
.circles__item {
height: 100px;
width: 100px;
background: limegreen;
border-radius: 50%;
transform: scale(1);
transform-origin: top center;
transition: all 500ms ease-out;
}
.circles__item:hover {
transform: scale(1.1);
width: 200px;
height: 200px;
background-color: rebeccapurple;
}
<div class="circles">
<div class="circles__item"></div>
<div class="circles__item"></div>
<div class="circles__item"></div>
<div class="circles__item"></div>
<div class="circles__item"></div>
</div>