如何将CSS3过渡效果添加到图像覆盖层?

3
我正在尝试找出如何给半透明图像叠加层(在:hover时出现)加上CSS3过渡效果(ease)。但是它没有起作用。我不确定是因为我漏掉了什么,还是过渡效果与display属性不兼容。有没有CSS的解决方法(我不知道JavaScript)?提前感谢您的帮助。
相关的HTML和CSS:
<div class="thumbnail">
    <figure>
        <img src="images/dude.jpg" alt=""/>
    </figure>
    <div class="thumbnail-overlay">
        <h2>Project Name</h2>
        <h3> Skills Skills Skills</h3>
        <p>This is a project description.</p>
    </div>
</div>

.thumbnail {
   position:relative;
   float:left;
   width:40%;
   margin:1.5% 1.5% 0 0;
}

.thumbnail-overlay {
   background-color: @dark-gray;
   display:none;
   opacity:.9;
   position:absolute;
   top:0;
   left:0;
   width:100%; height:100%;
   overflow:hidden;
   -webkit-transition:all .3s ease;
   -moz-transition:all .3s ease;
   transition:all.3s ease;
}


.thumbnail:hover .thumbnail-overlay {
   display:block;
}

1
显示属性无法进行动画处理(仅有两种状态)。但是透明度甚至可见性可以。 - Armel Larcier
2个回答

0

我认为这是由于display属性引起的。 CSS过渡与其不兼容,这就是为什么您会遇到这个问题的原因。

以下是我测试并正常工作的CSS代码:

.thumbnail .thumbnail-overlay {
background-color: @dark-gray;
display:block;
opacity:0;
position:absolute;
top:0;
left:0;
width:100%; height:100%;
overflow:hidden;
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
transition: all 0.3s ease;
}

.thumbnail:hover .thumbnail-overlay {
opacity: .9;
}

希望能有所帮助!!!


0

对我来说它正常工作。我将CSS分离到另一个文件中,并将其链接到HTML文件。这对我很好用。

HTML

    <head>
        <link rel="stylesheet" type="text/css" href="test.css">
    </head>
    <div class="thumbnail">
        <figure>
            <img src="/home/qbadmin/Downloads/Pic.jpg" alt=""/>
        </figure>
    <div class="thumbnail-overlay">
        <h2>Project Name</h2>
        <h3> Skills Skills Skills</h3>
        <p>This is a project description.</p>
    </div>
</div>

CSS

    .thumbnail {
      position:absolute;
      float:left;
      width:40%;
      left :100 px;
      top :100px;
      margin:1.5% 1.5% 0 0;
      }

     .thumbnail-overlay {
     background-color: @dark-gray;
     display:none;
     opacity:.9;
     position:absolute;
     top:100px;
     left:100px;
     width:100%; height:100%;
     overflow:hidden;
     -webkit-transition:all .3s ease;
     -moz-transition:all .3s ease;
      transition:all.3s ease;
      }

     .thumbnail:hover .thumbnail-overlay {
      display:block;
      opacity: .9;
       }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接