小程序中简单 Loading 效果关键帧动画

在小程序开发中,Loading 动画是提升用户体验的重要细节。它不仅能缓解用户等待时的焦虑感,还能让界面显得更加生动、专业。而实现这些动效,并不需要复杂的第三方库------仅用 CSS 的 @keyframes 关键帧动画,就能轻松完成。

本文将通过两个经典示例,带你掌握小程序中实现简单 Loading 动效的核心思路:

  1. 旋转式 Loading 动画(如加载图标旋转)
  2. 呼吸灯式 Loading 动画(如星星闪烁缩放)

一、前端做动效的简单思路

在开始写代码前,先明确几个通用原则:

  • 优先使用 transformopacity:这两个属性不会触发页面重排(reflow),性能高,动画更流畅。
  • @keyframes 定义动画过程:描述"从什么状态 → 到什么状态"。
  • animation 属性控制播放方式:包括时长、循环次数、缓动函数、延迟等。
  • 小程序支持标准 CSS3 动画.wxss 文件中可直接使用 @keyframestransformanimation 等。

接下来,我们通过两个典型 Loading 动效来实践这些思路。


二、1. 旋转式 Loading 动画(图标持续旋转)

这是最常见的 Loading 效果,比如一个圆形箭头或齿轮图标不断旋转。

🎯 动画目标

<image> 元素匀速、无限地旋转一圈(360°)。

🔧 实现代码

css 复制代码
/* 定义旋转动画 */
@keyframes rotateAnimation {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* 应用到图片 */
.loading-rotate {
  width: 40rpx;
  height: 40rpx;
  animation: rotateAnimation 1s infinite linear;
}
html 复制代码
<!-- WXML -->
<image class="loading-rotate" src="/images/spinner.png" />

📌 关键点解析

  • rotate(0deg) → rotate(360deg):形成完整一圈旋转;
  • animation: ... 1s infinite linear
    • 1s:每秒转一圈;
    • infinite:无限循环;
    • linear:匀速旋转(无加速/减速),视觉更稳定;
  • 360° 与 0° 视觉一致,因此循环无缝。

💡 适用于:数据加载、提交中、网络请求等待等场景。


三、2. 呼吸灯式 Loading 动画(星星缩放+透明度变化)

这种效果更柔和、有"生命力",常用于引导页、星空背景或轻量级提示。

🎯 动画目标

让星星图标周期性地"变大变亮 → 变小变暗",模拟呼吸节奏。

🔧 实现代码

css 复制代码
/* 定义呼吸动画 */
@keyframes starBreath {
  0%,
  100% {
    opacity: 0.35;
    transform: scale(0.92);
  }
  50% {
    opacity: 1;
    transform: scale(1);
  }
}

/* 第一颗星星 */
.loading_star_1 {
  position: absolute;
  left: 134rpx;
  top: 18rpx;
  width: 42rpx;
  height: 42rpx;
  animation: starBreath 1.6s ease-in-out infinite;
}

/* 第二颗星星(错峰启动) */
.loading_star_2 {
  position: absolute;
  left: 180rpx;
  top: 2rpx;
  width: 32rpx;
  height: 32rpx;
  animation: starBreath 1.6s ease-in-out infinite;
  animation-delay: 0.4s; /* 延迟启动 */
}
html 复制代码
<!-- WXML -->
<view class="loading-container">
  <image class="loading_star_1" src="/images/star.png" />
  <image class="loading_star_2" src="/images/star.png" />
</view>

📌 关键点解析

  • 双状态设计:0%/100%(小而暗) ↔ 50%(大而亮);
  • ease-in-out 缓动:让缩放和透明度变化更自然,符合"呼吸"节奏;
  • animation-delay 错峰:多元素之间不同步,避免呆板,增强动感;
  • 使用 rpx 单位:完美适配小程序屏幕。

💡 适用于:启动页装饰、轻提示、情感化设计等场景。


四、总结

动效类型 核心属性 特点 适用场景
旋转 Loading transform: rotate() 简洁、高效、通用 数据加载、提交中
呼吸灯 Loading transform: scale() + opacity 柔和、灵动、有节奏感 引导页、装饰动画

通过这两个例子可以看出:小程序中的动效并不复杂 。只要掌握 @keyframes + animation 的组合,再配合高性能的 CSS 属性,就能用极简代码实现优雅的 Loading 效果。

相关推荐
烂不烂问厨房6 小时前
支付宝小程序camera录制视频并上传注意事项
小程序·音视频
我是伪码农9 小时前
小程序125-150
小程序
帅次9 小时前
讯飞与腾讯云:Android 实时语音识别服务对比选择
android·ios·微信小程序·小程序·android studio·android runtime
Chengbei1110 小时前
小程序 AI 渗透新工具MCP!打通调试与安全检测、网络抓包、接口分析、越权检测一站式实现
人工智能·安全·web安全·搜索引擎·网络安全·小程序·系统安全
2501_9159090612 小时前
深入理解HTTPS中间人抓包技术原理与实战指南
网络协议·http·ios·小程序·https·uni-app·iphone
he___H12 小时前
微信小程序实现两行交错功能
微信小程序·小程序
万岳科技系统开发1 天前
私域直播系统开发从0到1:企业直播平台搭建全过程
前端·小程序·架构
2501_916007471 天前
iOS应用性能优化全面指南:从内存管理到工具使用
android·ios·性能优化·小程序·uni-app·iphone·webview
i220818 Faiz Ul1 天前
理财系统|基于java+vue的家庭理财系统小程序(源码+数据库+文档)
java·vue.js·spring boot·小程序·论文·毕设·理财系统
河北清兮网络科技1 天前
企业软件开发全流程:从需求到上线,如何高效落地?
小程序·app·短剧·短剧app·广告联盟