图像悬停效果问题

时间:2014-03-22 17:03:13

标签: html css html5 css3 css-transitions

我正在尝试做一个效果,当我将鼠标移到图片上时,我想要显示一个黑色的框,显示关闭只留在中间的一个正方形,我想放置一个搜索图标的图标。

我找到了一个教程,解释了如何做到这一点,但它解释得非常轻松。

我遇到了问题,因为我希望我的照片有宽度:155px;和身高:140px;。

但是当我在.view {}中给出这个宽度和高度值时,我不想把它变成黑色的正方形消失了,我希望那个方形可见,将图标搜索放在那里。 也许我没有很好地解释自己,但我认为使用jsFiddle你可以理解我的问题。我希望你能帮助我,欢迎任何帮助!

我更不了解的小提琴:

http://jsfiddle.net/ritz/cQL4S/

我的HTML

<div class="view second-effect">
    <img src="images/image1.jpg" />
    <div class="mask">
       <a href="#" class="info">Read More</a>
    </div>
</div>

我的css:

.view {
   width: 225px;
   height: 225px;
   margin: 10px;
   float: left;
   border: 5px solid #fff;
   overflow: hidden;
   position: relative;
   text-align: center;
   box-shadow: 0px 0px 5px #aaa;
   cursor: default;
}
.view .mask, .view .content {
    width: 225px;
   height: 225px;
   position: absolute;
   overflow: hidden;
   top: 0;
   left: 0;
}
.view img {
   display: block;
   position: relative;
}
.view a.info {
   background:url(../img/link.png) center no-repeat;
   display: inline-block;
   text-decoration: none;
   padding:0;
   text-indent:-9999px;
   width:20px;
   height:20px;
}


.second-effect .mask {
   opacity: 0;
   overflow:visible;
   border:0px solid rgba(0,0,0,0.7);
   -moz-box-sizing:border-box;
   -webkit-box-sizing:border-box;
   box-sizing:border-box;
   -webkit-transition: all 0.4s ease-in-out;
   -moz-transition: all 0.4s ease-in-out;
   -o-transition: all 0.4s ease-in-out;
   -ms-transition: all 0.4s ease-in-out;
   transition: all 0.4s ease-in-out;
}
.second-effect a.info {
    position:relative;
    top:-10px;
    opacity:0;
   -moz-transform:scale(0,0);
   -webkit-transform:scale(0,0);
   -o-transform:scale(0,0);
   -ms-transform:scale(0,0);
   transform:scale(0,0);
   -webkit-transition: -webkit-transform 0.2s 0.1s ease-in, opacity 0.1s ease-in-out;
   -moz-transition: -moz-transform 0.2s 0.1s ease-in, opacity 0.1s ease-in-out;
   -o-transition: -o-transform 0.2s 0.1s ease-in, opacity 0.1s ease-in-out;
   -ms-transition: -ms-transform 0.2s 0.1s ease-in, opacity 0.1s ease-in-out;
   transition: transform 0.2s 0.1s ease-in, opacity 0.1s ease-in-out;
}
.second-effect:hover .mask {
   opacity: 1;
   border:100px solid rgba(0,0,0,0.7);
}
.second-effect:hover a.info {
    opacity:1;
    -moz-transform:scale(1,1);
    -webkit-transform:scale(1,1);
    -o-transform:scale(1,1);
    -ms-transform:scale(1,1);
    transform:scale(1,1);
    -moz-transition-delay:0.3s;
    -webkit-transition-delay:0.3s;
    -o-transition-delay:0.3s;
    -ms-transition-delay:0.3s;
    transition-delay:0.3s;
}

我的问题是:

http://jsfiddle.net/ritz/cQL4S/1/

2 个答案:

答案 0 :(得分:2)

调整容器大小时,您还必须调整悬停大小。悬停的边框为100px。这不仅仅是容器。

http://jsfiddle.net/cQL4S/3/

   .second-effect:hover .mask {
     border:40px solid rgba(0,0,0,0.7);
   }

另外,你的新尺寸不是正方形,边框不是正方形。

答案 1 :(得分:0)

图标的位置错误。 http://jsfiddle.net/ritz/cQL4S/5/

.second-effect a.info {
  top: 20px;
}

我将背景设为红色,以便您可以看到。