2016-11-11 54 views
2

我已经创建了一个圆形,其中包含一个fontAwesome图标,并且在悬停时将其旋转180度,工作正常,但在悬停时,当我将鼠标悬停并且图标移动到180时,它的移动增加一个像素,不知道为什么。变换旋转悬停向上移动一个像素

我的问题是为什么它在悬停时向上移动一个像素,我无法找到问题。

这里是JSFiddle演示

编辑请注意,它在Firefox中唯一发生的事情。

.share-icon { 
 
background-color: #f00; 
 
border-radius: 50%; 
 
box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.3); 
 
color: #ffffff; 
 
float: left; 
 
font-size: 18px; 
 
height: 45px; 
 
line-height: 45px; 
 
margin-top: 50px; 
 
position: relative; 
 
text-align: center; 
 
width: 45px; 
 
transition: all 0.5s ease 0s; 
 
cursor: pointer; 
 
} 
 
.share-icon:hover { 
 
-webkit-transform: rotate(180deg); 
 
-moz-transform: rotate(180deg); 
 
-ms-transform: rotate(180deg); 
 
-o-transform: rotate(180deg); 
 
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css"> 
 
<div class="share-icon" onclick="shairIcon(this)"> 
 
    <i class="fa fa-share-alt" aria-hidden="true"></i> 
 
</div>

+1

未见其不动了起来..我可以SEEE – Logeshwaran

+0

我忘了提及,它在FireFox只 –

+0

发生不,它是不动的。尝试添加translateY(-1px)以查看如果移动一个px会发生什么。 – Sagar

回答

1

参考这个CSS,我做了修正。

您应该在悬停时添加fa图标类并添加转换属性。

.share-icon:hover .fa-share-alt { 
    -webkit-transform: rotate(180deg); 
    -moz-transform: rotate(180deg); 
    -ms-transform: rotate(180deg); 
    -o-transform: rotate(180deg); 
    -moz-transition: all 500ms ease; 
} 

工作DEMO!!!

+0

太棒了,它的工作完美,使图标而不是框的旋转是个好主意。 –

0

老实说,我不知道到底为什么,但如果你增加font-size只是两个像素,你会摆脱这个跳跃。只需将代码更新到以下

.share-icon { 
 
    background-color: #f00; 
 
    border-radius: 50%; 
 
    box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.3); 
 
    color: #ffffff; 
 
    height: 45px; 
 
    width: 45px; 
 
    line-height: 45px; 
 
    text-align: center; 
 
    cursor: pointer; 
 
    font-size: 20px; 
 
} 
 
.share-icon i { 
 
    transition: all 0.5s ease 0s; 
 
} 
 
.share-icon:hover i { 
 
    transform: rotate(180deg); 
 
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css"> 
 
<div class="share-icon" onclick="shairIcon(this)"> 
 
    <i class="fa fa-share-alt" aria-hidden="true"></i> 
 
</div>

+0

字体大小不是问题,问题是随着旋转,我正在旋转主要的div,但正如@Logeshwaran建议旋转图标将修复问题,做了。 –

+0

@SanjeevK好吧,以为你的意思是你不希望在悬停动画完成后跳过图标。但是很好,以前的答案可以解决你的问题。 – SvenL