可以尝试使用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,并为其设置绝对定位,位于父元素之上。我们使用动画实现了伪元素的飞行效果,它会沿着竖直方向运动,仿佛在空中飘荡。
- 最后,我们为父元素和伪元素都设置了阴影效果,增强了立体感和层次感。
你可以在代码中进行更改,以适应您的具体需求。