当前位置:首页 > CSS

css动画制作弹球

2026-02-13 07:57:45CSS

使用CSS动画制作弹球效果

通过CSS的@keyframesanimation属性可以模拟弹球运动效果,结合transformtransition实现物理反弹动画。

HTML结构

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

基础CSS样式

.container {
  width: 300px;
  height: 300px;
  border: 1px solid #ccc;
  position: relative;
  overflow: hidden;
}

.ball {
  width: 50px;
  height: 50px;
  background: radial-gradient(circle at 30% 30%, #ff0000, #800000);
  border-radius: 50%;
  position: absolute;
}

垂直弹跳动画

通过关键帧定义Y轴位移和缩放效果模拟重力加速度:

.ball {
  animation: bounce 1.5s infinite cubic-bezier(0.5, 0.05, 0.5, 1);
}

@keyframes bounce {
  0% {
    transform: translateY(0) scale(1, 1);
  }
  25% {
    transform: translateY(250px) scale(1.1, 0.8);
  }
  50% {
    transform: translateY(150px) scale(0.9, 1.1);
  }
  75% {
    transform: translateY(250px) scale(1.05, 0.9);
  }
  100% {
    transform: translateY(200px) scale(1, 1);
  }
}

水平移动的弹球

增加X轴位移实现斜向弹跳:

@keyframes moveBounce {
  0% {
    transform: translate(0, 0);
  }
  25% {
    transform: translate(100px, 150px) scale(1.1, 0.8);
  }
  50% {
    transform: translate(200px, 50px) scale(0.9, 1.1);
  }
  75% {
    transform: translate(250px, 150px) scale(1.05, 0.9);
  }
  100% {
    transform: translate(300px, 100px);
  }
}

添加阴影增强立体感

通过伪元素创建动态阴影:

.ball::after {
  content: '';
  position: absolute;
  bottom: -10px;
  left: 15px;
  width: 20px;
  height: 5px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  animation: shadow 1.5s infinite;
}

@keyframes shadow {
  0% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.5); opacity: 0.3; }
  100% { transform: scale(1); opacity: 0.7; }
}

使用CSS变量控制参数

通过变量方便调整动画参数:

:root {
  --ball-size: 50px;
  --bounce-height: 250px;
  --animation-duration: 1.2s;
}

.ball {
  width: var(--ball-size);
  height: var(--ball-size);
  animation-duration: var(--animation-duration);
}

以上代码组合后可实现具有物理感的弹球动画效果,通过调整关键帧百分比和cubic-bezier函数可以改变弹跳节奏。实际应用中可能需要根据容器尺寸微调位移数值。

css动画制作弹球

分享给朋友:

相关文章

css3在线动画制作

css3在线动画制作

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

css3动画制作心得

css3动画制作心得

CSS3动画制作心得 CSS3动画通过@keyframes和animation属性实现,结合硬件加速和性能优化技巧,可创建流畅的视觉效果。 关键帧定义 使用@keyframes定义动画序列,百分比或…

css3菊花动画制作

css3菊花动画制作

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

css 动画制作

css 动画制作

CSS 动画基础 CSS 动画通过 @keyframes 和 animation 属性实现。@keyframes 定义动画关键帧,animation 控制动画的播放方式。 定义一个简单的动画: @…

css动画制作效果

css动画制作效果

CSS 动画基础语法 CSS 动画通过 @keyframes 规则定义动画序列,再通过 animation 属性将动画应用到元素上。 定义关键帧: @keyframes slideIn…

css路径动画制作

css路径动画制作

CSS路径动画制作方法 CSS路径动画可以通过offset-path和animation属性实现元素沿自定义路径运动。现代浏览器支持SVG路径或CSS基本形状作为运动轨迹。 定义路径 使用SVG路径…