我正在尝试使用CSS转换属性转换div
在悬停。
我有变换做我想要的,但不幸的是它应用变换(逻辑上我猜),到div
的内容,我想只是应用变换的div
,而不是底层的内容(一个图标在这种情况下)。
我在这里看到了一些方法,包括对图标应用反向过渡,但是当我这样做的时候,它只是增加了效果。
下面是我的代码:.MsgBtnIcon {
position: fixed;
bottom: 0px;
right: 7px;
padding: 0px;
}
#transDemo2 div {
display: block;
position: fixed;
bottom: 0px;
right: 0px;
background-color: #03A9F4;
width: 75px;
height: 75px;
text-align: center;
-webkit-transition: all 1s ease-in-out;
-moz-transition: all 1s ease-in-out;
-ms-transition: all 1s ease-in-out;
transition: all 1s ease-in-out;
}
#transDemo2 div:hover,
#transDemo2 div.hover_effect {
-webkit-transform: rotate(360deg) scale(2, 2) translateX(-19px) translateY(-19px);
-moz-transform: rotate(360deg) scale(2, 2) translateX(-19px) translateY(-19px);
-ms-transform: rotate(360deg) scale(2, 2) translateX(-19px) translateY(-19px);
transform: rotate(360deg) scale(2, 2) translateX(-19px) translateY(-19px);
}
<script src="https://use.fontawesome.com/353bc64522.js"></script>
<div id="transDemo2">
<div class="hover">
<i class="fa fa-plus fa-4x MsgBtnIcon" aria-hidden="true"></i>
</div>
</div>
您可以通过将MsgBtnIcon
移动为悬停div的子div并添加pointer-events: none
来完成此操作。
更新的小提琴示例
.MsgBtnIcon {
position: fixed;
bottom: 0px;
right: 7px;
padding: 0px;
pointer-events: none;
}
#transDemo2 div {
display: block;
position: fixed;
bottom: 0px;
right: 0px;
background-color: #03A9F4;
width: 75px;
height: 75px;
text-align:center;
-webkit-transition: all 1s ease-in-out;
-moz-transition: all 1s ease-in-out;
-ms-transition: all 1s ease-in-out;
transition: all 1s ease-in-out;
}
#transDemo2 div:hover, #transDemo2 div.hover_effect {
-webkit-transform:rotate(360deg) scale(2,2) translateX(-19px) translateY(-19px);
-moz-transform:rotate(360deg) scale(2,2) translateX(-19px) translateY(-19px);
-ms-transform:rotate(360deg) scale(2,2) translateX(-19px) translateY(-19px);
transform:rotate(360deg) scale(2,2) translateX(-19px) translateY(-19px);
}
<script src="https://use.fontawesome.com/353bc64522.js"></script>
<div id="transDemo2">
<div class="hover"></div>
<i class="fa fa-plus fa-4x MsgBtnIcon" aria-hidden="true"></i>
</div>
与其与转换作斗争,不如简单地将遭受转换的部分与未受影响的部分分开:https://jsfiddle.net/m1hqzaqf/
<script src="https://use.fontawesome.com/353bc64522.js"></script>
<div id="transDemo2">
<div class="hover">
</div>
<i class="fa fa-plus fa-4x MsgBtnIcon" aria-hidden="true">X</i>
</div>
毕竟,'hover'div,在这个例子中,似乎只是作为一个背景,无论如何。