当前位置:首页 > 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变量控制参数

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

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函数可以改变弹跳节奏。实际应用中可能需要根据容器尺寸微调位移数值。

分享给朋友:

相关文章

css3菊花动画制作

css3菊花动画制作

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

css动画制作效果

css动画制作效果

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

css路径动画制作

css路径动画制作

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

css3 动画制作

css3 动画制作

CSS3 动画制作基础 CSS3 动画通过 @keyframes 规则和 animation 属性实现。定义关键帧后,将其绑定到元素上,设置持续时间、延迟、循环方式等参数。 @keyfram…

css动画制作图片

css动画制作图片

CSS动画制作图片的方法 CSS动画可以通过@keyframes和animation属性实现图片的动态效果,例如旋转、缩放、淡入淡出等。 基础动画实现 定义一个@keyframes规则,描述动画从开…

css3在线动画制作

css3在线动画制作

CSS3 在线动画制作工具 CodePen CodePen 是一个流行的在线代码编辑器,支持实时预览 CSS3 动画效果。用户可以直接编写 CSS3 动画代码(如 @keyframes 和 trans…