【问题标题】:image hover effect issue图片悬停效果问题
【发布时间】:2014-03-23 16:15:09
【问题描述】:

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

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

我遇到了问题,因为我希望我的图片有宽度: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/

【问题讨论】:

    标签: html css css-transitions


    【解决方案1】:

    当您调整容器的大小时,您也必须调整悬停的大小。悬停的边框为 100 像素。这不仅仅是容器。

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

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

    当然你的新尺寸不是正方形,边框也不是正方形。

    【讨论】:

    • 你是对的。并且可以使正方形添加border-right-width: 47px;左边框宽度:47px; }
    • 我已经在这里看了很多时间,但我无法理解,真的谢谢你!
    • 我正在尝试将图标字体放在中间的正方形中,但在将图标居中时遇到了一些问题。如果你能看到它是否可以,我的带有图标的 jsfiddle 会很棒...jsfiddle.net/ritz/cQL4S/5
    • 删除文本缩进:-9999px;
    【解决方案2】:

    图标的位置不对。 http://jsfiddle.net/ritz/cQL4S/5/

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

    我把背景调成红色,这样你就可以看到了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-21
      • 1970-01-01
      • 1970-01-01
      • 2012-06-27
      • 1970-01-01
      • 1970-01-01
      • 2012-09-28
      相关资源
      最近更新 更多