当前位置:首页 > VUE

vue实现加载动画

2026-03-09 12:00:22VUE

vue实现加载动画的方法

在Vue中实现加载动画可以通过多种方式,以下是几种常见的方法:

使用CSS动画 通过Vue的过渡系统结合CSS动画实现加载效果。定义一个简单的旋转动画:

.spinner {
  width: 40px;
  height: 40px;
  border: 4px solid #f3f3f3;
  border-top: 4px solid #3498db;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

在Vue组件中引入:

<template>
  <div v-if="loading" class="spinner"></div>
</template>

使用第三方库 Vue生态系统中有许多专门用于加载动画的库,如vue-spinnervue-loading-overlay等。安装后直接引入组件:

vue实现加载动画

import Loading from 'vue-loading-overlay';
import 'vue-loading-overlay/dist/vue-loading.css';

export default {
  components: {
    Loading
  }
}

在模板中使用:

<loading :active.sync="isLoading" :can-cancel="true"></loading>

基于条件渲染的动画 结合Vue的v-if和过渡效果实现加载状态切换:

<transition name="fade">
  <div v-if="loading" class="loading-message">
    <p>Loading...</p>
  </div>
</transition>

配套CSS:

vue实现加载动画

.fade-enter-active, .fade-leave-active {
  transition: opacity .5s;
}
.fade-enter, .fade-leave-to {
  opacity: 0;
}

骨架屏技术 在数据加载前显示内容的大致轮廓:

<div v-if="loading" class="skeleton">
  <div class="skeleton-header"></div>
  <div class="skeleton-content"></div>
</div>

样式示例:

.skeleton {
  width: 100%;
}
.skeleton-header {
  height: 40px;
  background: linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 50%,#f2f2f2 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
}
@keyframes shimmer {
  from { background-position: 200% 0; }
  to { background-position: -200% 0; }
}

进度条加载 对于页面级加载,可以使用类似nprogress的库:

import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

// 在路由守卫或axios拦截器中调用
NProgress.start()
NProgress.done()

这些方法可以根据具体需求选择或组合使用,CSS动画适合简单场景,第三方库提供更多功能选项,骨架屏能提升用户体验,进度条适用于页面导航场景。

标签: 加载动画
分享给朋友:

相关文章

react如何加载网页

react如何加载网页

使用 React 加载网页的方法 通过 iframe 嵌入网页 在 React 组件中,可以通过 iframe 标签直接加载外部网页。这种方式简单直接,适合嵌入第三方页面或静态内容。 imp…

elementui动画

elementui动画

ElementUI 动画使用指南 ElementUI 提供了内置的过渡动画效果,主要通过 Vue 的 <transition> 组件实现。以下为常见动画应用方法: 淡入淡出动画 通过 e…

vue实现加载条

vue实现加载条

Vue 实现加载条的方法 使用第三方库(如 NProgress) 安装 NProgress 库: npm install nprogress 在 Vue 项目中引入并使用: import…

vue实现动画特效

vue实现动画特效

Vue 实现动画特效的方法 Vue 提供了多种方式实现动画特效,主要通过内置组件和第三方库结合 CSS 或 JavaScript 完成。以下是常见的实现方法: 使用 Vue 内置过渡组件 Vue 的…

vue实现加载动画

vue实现加载动画

Vue 实现加载动画的方法 在 Vue 中实现加载动画可以通过多种方式完成,以下是一些常见的方法: 使用 CSS 动画 通过 CSS 定义动画效果,结合 Vue 的动态类绑定实现加载动画。以下是一个…

使用Vue实现洗牌动画

使用Vue实现洗牌动画

使用CSS和Vue实现洗牌动画 洗牌动画可以通过CSS过渡和Vue的动态数据绑定实现。以下是实现步骤: 准备数据 data() { return { cards: [ {…