2016-07-14 4 views
2

У меня есть следующий код, но вы не можете сделать плавный переход на зависание.Плавный переход CSS при наведении указателя мыши на div

<div class="image_container"> 
    <figure><img alt="" src="http://dummyimage.com/279x279/000000/fff"></figure> 
    <div class="bio_overlay"></div> 
</div> 

Я применил эффект перехода на фактический класс, но по какой-то причине он не обнаруживает эффект.

Демо: https://jsfiddle.net/squidraj/r4LLf4w0/

Любая помощь высоко ценится.

ответ

7

Вы используете visibility и переходят на opacity. Свойства visibility, display и еще несколько не могут быть преобразованы.

.image_container { 
 
    position: relative; 
 
    width: 279px; 
 
    height: 279px; 
 
} 
 
.image_container img { 
 
    display: block; 
 
    position: relative; 
 
} 
 
.bio_overlay { 
 
    background: #ffc27f; 
 
    bottom: 0; 
 
    height: 100%; 
 
    left: 2.5rem; 
 
    opacity: 0.4; 
 
    position: absolute; 
 
    right: 0; 
 
    top: 0; 
 
    transition: opacity 0.5s ease-in-out 0s; 
 
    width: 100%; 
 
    opacity: 0; 
 
} 
 
.image_container:hover .bio_overlay { 
 
    opacity: 0.4; 
 
}
<div class="image_container"> 
 
    <figure> 
 
    <img alt="" src="http://dummyimage.com/279x279/000000/fff" /> 
 
    </figure> 
 
    <div class="bio_overlay"></div> 
 
</div>

3

посмотреть здесь jsfiddle

transition не работает с visibility. он работает только с 'calulable' значений типа (0,1) и так ... вместо использования видимости opacity

код:

bio_overlay { 
    background: #ffc27f; 
    bottom: 0; 
    height: 100%; 
    left: 2.5rem; 

    position: absolute; 
    right: 0; 
    top: 0; 
    transition: opacity 0.5s ease-in-out 0s; 
    opacity:0; 
    width: 100%; 
} 

.image_container:hover .bio_overlay { 
    opacity:0.4; 
} 
0

попробовать это:

.image_container:hover .bio_overlay { 
visibility: visible; 
opacity: 0.5; 
} 
Смежные вопросы