当前位置:首页 > 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 动画基础 CSS3 动画通过 @keyframes 规则和 animation 属性实现。@keyframes 定义动画的关键帧,animation 控制动画的播放方式(如时长、延迟、循环等…

css打勾动画制作

css打勾动画制作

CSS打勾动画制作方法 使用CSS制作打勾动画可以通过伪元素和关键帧动画实现,以下是具体实现方式: HTML结构 <div class="checkmark"></div>…

css动画制作

css动画制作

CSS动画基础语法 CSS动画通过@keyframes规则定义动画序列,再通过animation属性绑定到元素上。基本语法结构分为两部分: @keyframes 动画名称 { 0% { /* 起…

css3 动画制作

css3 动画制作

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

css动画制作图片

css动画制作图片

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

css3前端动画制作

css3前端动画制作

CSS3 前端动画制作方法 使用 transition 制作过渡动画 transition 用于在元素状态变化时添加平滑过渡效果。可以定义过渡的属性、持续时间、延迟时间和速度曲线。 .box {…