2014-03-24 83 views
0

我对鼠标图像悬停产生影响,但是我遇到了问题。图像悬停的奇怪问题

我有3篇文章,当我将图像悬停时,所有其他图像都向右移动。

我发现问题在这里:.second-effect:hover a.info {},因为如果我移除transform:scale(1,1),当我将图像悬停在图像上时,其他图像不会移动。

但是,如果没有这种转换,我想在图像中心显示的图标字体不会出现。

的问题是在这里:

.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; 
} 

所以我想在我的那个I'm与CSS过渡做正方形内图像的中心图标字体。

如果我删除transform:scale(1,1)图标不会出现。

如果当我将图像悬停时,我不删除此代码,其他图像也在移动。

任何人都可以理解为什么发生这种情况?

我的jsfiddle:

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

我的整个HTML针对此问题:

<article id="news"> 
    <div class="view second-effect"> 
     <img src="imagens/transferir (1).jpg" /> 
     <div class="mask"> 
      <a href="#" class="info"><i class="fa fa-download"></i></a> 
     </div> 
    </div> 
     <h2> 
     <a>Title Post number one</a> 
     <br /> 
    </h2> 
    <span>Date of post number one</span> 
    <p>Post Number one</p> 
</article> 

我对这个问题的所有CSS:

.info>i{font-size:1.7em; margin-top:15px; color:#000; } 

    #news img 
    { 
     width:155px; 
     height:140px; 
    } 

    .view a.info { 

     padding:0; 
     width:20px; 
     height:20px; 
    } 

    .view { 
     width: 155px; 
     height: 140px; 
     float: left; 
     overflow: hidden; 
     position: relative; 
     text-align: center; 
     box-shadow: 0px 0px 5px #aaa; 
     cursor: default; 
     margin-right:20px; 
     border:3px solid #ccc; 
     margin-top:4px; 

    } 
    .view .mask, .view .content { 
     width: 155px; 
     height: 140px; 
     position: absolute; 
     overflow: hidden; 
     top: 0; 
     left: 0; 
    } 

    .view img { 
     display: block; 
     position: relative; 
    } 
    .view a.info>i{ 

    }  
    .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:55px 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; 
    } 
+0

我无法在这个特定的问题发表评论,但我注意到你正在分配两个'的位置是:绝对的;'和'的位置是:相对的;'类'.view'。后者的财产将覆盖前者的财产,使其毫无意义。另外,为什么有一个空白的'.view a。info>我{}'选择器?在那里浪费空间。 – TylerH

+1

如果你的图像已经相对定位了,只需给它一个'bottom:5px',这将从底部提升5px,或者如果你需要从顶部调整它,你可以说'top:-5px' – ntgCleaner

+0

谢谢,但是我希望图标图像转到顶部5px而不是图像。我想我解释自己不好,对不起 – androidY

回答

0

bottom: 5px;添加到.view img应该实现此目的。

JSFiddle宽度更新.view img

.view img { 
    display: block; 
    position: relative; 
    bottom: 5px 
} 

编辑: 变化

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

.second-effect:hover .mask { 
opacity: 1; 
border: 55px solid rgba(0,0,0,0.7); 
padding-top: 36px; 
} 

将作出过渡的白色区域大一点。

+0

我想我解释自己不好。我想给图标留下底部,而不是图像。有了底部:5px我的图片上涨了5px,但我想上去图标而不是图片。 – androidY

+0

我不确定'icon font'是什么意思? – Howli

+0

我更新与我有问题的图像我的问题。图标字体是下载的图标。它像一个图标,但它的字体制作,不会超载与许多图像的网页! – androidY

0

为什么你的CSS有margin-top集?这不会推倒你的偶像吗?尝试评论它,看看它是否改变了图标的位置。如果是这样,只需减少你的margin-top,这应该使你的图标到位。

.info>i 
{ 
font-size:1.7em; 
/* margin-top:15px; */ 
color:#000; 
margin-bottom:5px; 
} 
+0

谢谢。我有4条消息,这种方式的问题是,当我用鼠标悬停图像时,其他图像每当我将图像悬停时都会移动。 – androidY

+0

我发现问题出在这里:.second-effect:hover a.info {}。如果我删除了transform:scale(1,1);我没有这个问题,但随后图标字体消失:S。我真的不明白发生了什么事! – androidY

+0

哎呀。此时,我唯一的建议是尝试通过分配ID并尝试通过引用ID来设置动画,或者使用ID和边缘上的'!important'标签来强制边距来隔离对方的图标。可悲的是,这是一个相当脏的修复... – TorpedoBench