漂亮实用的页面loading(加载)封装代码

阅读时长 3 分钟读完

在前端开发中,页面加载过程中的loading效果是很重要的一个细节。一个好的loading动画可以让用户在等待页面加载的同时获得更好的视觉体验,减少用户的等待焦虑感。本文将介绍如何封装一个漂亮实用的loading动画,并提供示例代码和指导意义。

界面设计

首先我们需要考虑loading动画的样式和布局。为了让用户感到舒适和愉悦,我们应该选择简单、明快、不张扬的动画效果。下面是一些比较适合做loading动画的样式:

  • 旋转圆圈:通过旋转轴心来表示加载状态
  • 跳跃线条:一条或多条线条来回跳跃
  • 进度条:显示加载进度的条形图案

选择哪种样式还需要根据具体的场景进行选择,如对于非常短暂的加载过程可以使用简单的加载图标,而对于长时间的加载则需要使用更复杂的动画效果。

动画实现

一般来说,loading动画的实现有两种方式:CSS动画和JavaScript动画。CSS动画是比较简单易懂的,可以通过使用@keyframes规则来定义动画关键帧,然后通过animation属性将动画应用到元素上。JavaScript动画则需要使用JavaScript代码来控制DOM元素,具有更强的灵活性和可扩展性。

下面是一个CSS实现的旋转圆圈loading动画示例代码:

-- -------------------- ---- -------
------- -
  ------- --- ----- --------
  ----------- --- ----- --------
  -------------- ----
  ------ -----
  ------- -----
  ---------- ---- -- ------ ---------
-

---------- ---- -
  -- - ---------- ------------- -
  ---- - ---------- --------------- -
-

这个动画会在一个30x30像素的圆形区域内,以线宽为4px的蓝色边框为基础,在顶部绘制一条边框,然后通过transform属性旋转整个圆圈。通过设置animation属性的值为spin,就可以让这个动画在循环中无限重复。

下面是一个JavaScript动画实现的进度条loading动画示例代码:

-- -------------------- ---- -------
---- ---------------------

-------
------- -
  --------- ---------
  ------ -----
  ------- ----
  ----------------- --------
-

-------------- -
  -------- ---
  -------- ------
  --------- ---------
  ---- --
  ----- --
  ------- --
  ----------------- --------
  ---------- -------- -- ------ ---------
-

---------- -------- -
  -- - ------ --- -
  ---- - ------ ----- -
-
--------

这个动画会在一个4像素高的矩形区域内,以灰色为背景,在顶部绘制一个蓝色的条形表示进度。通过设置animation属性的值为progress,就可以让这个动画在循环中无限重复。

封装代码

为了提高代码的可重用性和可维护性,我们应该将loading动画的实现封装成一个组件或插件。下面是一个简单的React组件示例代码:

-- -------------------- ---- -------
------ ------ - --------- - ---- --------
------ --------- ---- -------------

----- ------- ------- --------- -
  ------ --------- - -
    ----- --------------------------- ----------------
    ------ -----------------
    ----- -----------------

- --------------------------------------------------------- --------
------------------------------------------------------------------------------
纠错
反馈