CSS3提供了强大的动画特效功能,可以通过简单的代码实现复杂的动画效果。在本文中,我将向您展示如何使用CSS3实现星球图标的悬停几何爆炸动画特效。

我们需要准备一些基本的HTML和CSS代码,用于创建我们的星球图标。下面是HTML代码:

<div class="planet">
  <div class="inner"></div>
</div>

我们使用一个带有“planet”类的div元素来表示我们的星球,它包含另一个带有“inner”类的div元素,用于表示星球的内部。

我们使用CSS样式来设置星球的基本样式,如下所示:

.planet {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background-color: #1c1c1c;
  position: relative;
}

.inner {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background-color: #292929;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

我们使用border-radius属性来创建圆形的星球,使用position属性来将星球的内部div元素相对于星球进行定位,并使用transform属性来将其居中。

我们将使用CSS3动画特效来创建悬停几何爆炸动画。我们需要定义一些关键帧,以使星球的内部div元素在悬停时分解为多个小部分。

以下是我们的CSS代码,用于定义动画特效:

.planet:hover .inner {
  animation: explode 0.5s linear forwards;
}

@keyframes explode {
  0% {
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
  }
  50% {
    transform: translate(-50%, -50%) scale(0.8);
    opacity: 0.7;
  }
  100% {
    transform: translate(-50%, -50%) scale(0);
    opacity: 0;
  }
}

.inner:after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 50%;
  height: 50%;
  background-color: #ff2f2f;
  border-radius: 50%;
  transform-origin: top left;
  transform: translate(-50%, -50%) scale(0);
  animation: explode2 0.5s linear forwards;
}

.inner:before {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  right: 0;
  width: 50%;
  height: 50%;
  background-color: #ff2f2f;
  border-radius: 50%;
  transform-origin: bottom right;
  transform: translate(50%, 50%) scale(0);
  animation: explode2 0.5s linear forwards;
}

@keyframes explode2 {
  0% {
    transform: translate(-50%, -50%) scale(0);
  }
  50% {
    transform:translate(-50%, -50%) scale(1.2);

  }
  100% {
    transform: translate(-50%, -50%) scale(1);
  }
}

我们已经成功地实现了星球图标的悬停几何爆炸动画特效。