Вы должны переключить свой селектор с .fundo:hover + .center-img
на .fundo:hover ~ .center-img
, потому что <img class="center-img">
не является прямым братом <img class="fundo">
.
Селектор ~
позволит вам выбрать любого брата <img class="fundo">
, который имеет класс .center-img
.
Использование перехода непрозрачности
CodePen с использованием перехода непрозрачности
.center-img {
position: absolute;
top: 40%;
left: 50%;
transform: translate(-50%, -50%);
width: 80px;
height: auto;
opacity: 0; /* Add this */
}
.fundo:hover ~ .center-img { /* Change selector to this */
transition: 1.2s ease; /* Add this */
opacity: 1; /* Add this */
}
Использование свойства видимости
CodePen с использованием свойства видимости
.center-img {
position: absolute;
top: 40%;
left: 50%;
transform: translate(-50%, -50%);
width: 80px;
height: auto;
visibility: hidden;
}
.fundo:hover ~ .center-img { /* Change selector to this */
visibility: visible;
}
Устранение эффекта мерцания при наведении курсора на звезду или счет с использованием наложения
Реализация наложения CodePen
Идея состоит в том, чтобы создать невидимое наложение, которое будет покрывать все изображение фильма и применять эффекты наведения на него.
Мерцание происходило в вашем решении, потому что эффекты наведения были размещены на изображении фильма, которое находилось за звездой и показывало по оси z.
Как только ваша мышь зависла над звездой или счетом, эффект видимости по существу переключался, потому что ваша мышь зависала над звездой / счетом вместо изображения фильма.Это привело к тому, что эффекты при наведении на звезду / счет были бы сняты.После того как эффекты были сняты, а их видимость скрыта, вы вернулись к наведению на изображение фильма.Этот цикл создал эффект мерцания.
.fundo__overlay { /* Created new selector */
position: absolute;
z-index: 999; /* Give the overlay a higher stacking content */
top: 0;
left: 0;
width: 100%; /* Get it to match the movie image's dimensions */
height: 100%;
background: black;
opacity: 0; /* Used for hover transition */
}
/* Transferred hover effects */
.fundo__overlay:hover { /* Changed selector */
transition: opacity .4s ease;
opacity: 0.5
}
.fundo__overlay:hover ~ .center { /* Changed selector */
visibility: visible;
}
.fundo__overlay:hover ~ .center-img { /* Changed selector */
visibility: visible;
}
<div class="container">
<div class="fundo__overlay"></div> <!-- Added new element -->
<img class="fundo" src="https://www.downgraf.com/wp-content/uploads/2015/06/Classic-Movie-Posters-8.jpg" alt="Cinque Terre">
<div class="center">10/10</div>
<img class="center-img" src="https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/160/samsung/161/white-medium-star_2b50.png">
</div>