变换div而不变换里面的图标



我正在尝试使用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,在这个例子中,似乎只是作为一个背景,无论如何。

相关内容

  • 没有找到相关文章

最新更新