使用CSS制作一个实现悬浮飞行效果的动画

24 min read

可以尝试使用CSS3动画和变换来实现悬浮飞行的效果。以下是一个简单的示例代码:

HTML代码:

<div class="fly">Hover me</div>

CSS代码:

.fly {
  display: inline-block;
  padding: 20px;
  background-color: #fff;
  color: #333;
  border-radius: 50%;
  position: relative;
  transition: all 0.5s ease-out;
}

.fly:hover {
  transform: translateY(-50px) rotate(360deg);
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}

.fly:before {
  content: "";
  position: absolute;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
  width: 20px;
  height: 20px;
  background-color: #fff;
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
  animation: fly 2s linear infinite;
}

@keyframes fly {
  0% {
    transform: translateY(-50px);
  }
  50% {
    transform: translateY(-10px);
  }
  100% {
    transform: translateY(-50px);
  }
}

解释:

  • 首先,我们将父元素设置为悬浮状态,即鼠标悬浮时发生变化。我们使用transition和transform属性创建平滑的动画效果,鼠标悬浮时将元素向上移动一定距离,并绕中心点旋转。
  • 接着,我们为父元素添加一个伪元素:before,并为其设置绝对定位,位于父元素之上。我们使用动画实现了伪元素的飞行效果,它会沿着竖直方向运动,仿佛在空中飘荡。
  • 最后,我们为父元素和伪元素都设置了阴影效果,增强了立体感和层次感。

你可以在代码中进行更改,以适应您的具体需求。