当前位置:首页 > CSS

css动画制作弹球

2026-01-28 13:39:29CSS

使用CSS动画制作弹球效果

创建一个弹球动画需要结合CSS的@keyframes规则和animation属性,模拟弹球的弹跳和移动效果。以下是实现方法:

HTML结构

<div class="ball"></div>

CSS样式

.ball {
  width: 50px;
  height: 50px;
  background-color: #ff4757;
  border-radius: 50%;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  animation: bounce 2s infinite cubic-bezier(0.5, 0.05, 0.5, 1);
}

@keyframes bounce {
  0%, 100% {
    bottom: 0;
    animation-timing-function: cubic-bezier(0.5, 0.05, 0.5, 1);
  }
  50% {
    bottom: 300px;
    animation-timing-function: cubic-bezier(0.05, 0.5, 0.5, 1);
  }
}

关键点说明

贝塞尔曲线控制速度 通过cubic-bezier()函数调整弹跳的加速度和减速度:

  • 下落时使用cubic-bezier(0.05, 0.5, 0.5, 1)模拟重力加速
  • 上升时使用cubic-bezier(0.5, 0.05, 0.5, 1)模拟阻力减速

弹跳高度调整 修改@keyframes50%对应的bottom值可改变弹跳高度,数值越大弹跳越高。

进阶效果:带水平移动的弹球

.ball {
  /* 保持原有样式 */
  animation: bounceAndMove 3s infinite;
}

@keyframes bounceAndMove {
  0% {
    bottom: 0;
    left: 0;
  }
  25% {
    bottom: 200px;
    left: 25%;
  }
  50% {
    bottom: 0;
    left: 50%;
  }
  75% {
    bottom: 150px;
    left: 75%;
  }
  100% {
    bottom: 0;
    left: 100%;
  }
}

性能优化建议

  • 使用transform替代bottom/left属性变化可获得更好的性能
  • 为元素添加will-change: transform;提示浏览器提前优化
  • 避免同时激活过多动画,可能引起页面卡顿

css动画制作弹球

分享给朋友:

相关文章

css3在线动画制作

css3在线动画制作

CSS3 在线动画制作工具推荐 Animista 提供可视化界面生成 CSS 动画代码,支持自定义缓动效果、延迟和迭代次数。可直接复制生成的 @keyframes 和动画属性代码到项目中。 网址:ht…

css动画制作图片

css动画制作图片

CSS动画制作图片的方法 使用CSS动画可以为图片添加各种动态效果,如旋转、缩放、淡入淡出等。以下是几种常见的CSS动画实现方式。 基础动画实现 通过@keyframes定义动画序列,并将其应用到图…

css3前端动画制作

css3前端动画制作

CSS3 前端动画制作方法 CSS3 提供了多种方式实现动画效果,包括过渡(transition)、关键帧动画(keyframes)和变换(transform)。以下是具体实现方法: 过渡动画(Tr…

css3在线动画制作

css3在线动画制作

CSS3 在线动画制作工具 以下是一些常用的在线工具,可以帮助快速生成CSS3动画代码,无需手动编写全部代码: Animista 网址:https://animista.net/ 特点:提供预设的C…

css3菊花动画制作

css3菊花动画制作

使用 CSS3 制作菊花动画 菊花动画通常指一种旋转的加载动画,类似于花瓣旋转的效果。以下是几种实现方法: 关键帧动画实现 通过 @keyframes 定义旋转动画,结合 transform 和…

css制作弹球

css制作弹球

CSS 制作弹球效果 弹球效果可以通过 CSS 动画和关键帧实现,以下是一个完整的实现方法。 HTML 结构 创建一个简单的 HTML 结构,包含一个弹球元素和一个容器: <div cl…