Это работает, как и ожидалось, это не связано с css-modules
или react
, это то, как CSS
работает.
Когда элемент hidden
, он "теряет" состояние зависания, поэтому он переключается обратно на visible
(начальное значение для visibility
), затем снова ловит событие наведения и так далее.Вот почему это мерцает.
Что вы можете сделать, это сделать opacity:0
:
.image:hover{
opacity:0;
}
Пример с отличиями:
.wrapper {
display: flex;
flex-direction: row;
justify-content: space-around;
}
.box {
background-color: #333;
color: #fff;
flex: 1;
margin: 15px;
height: 100px;
display: flex;
justify-content: center;
align-items: center;
}
.opacity:hover {
opacity: 0;
}
.hidden:hover {
visibility: hidden;
}
<div class="wrapper">
<div class=" box opacity ">Opacity</div>
<div class="box hidden ">Visibility</div>
</div>