当前位置:首页 > 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等。安装后直接引入组件:

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:

.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的库:

vue实现加载动画

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

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

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

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

相关文章

加载jquery

加载jquery

加载 jQuery 的方法 通过 CDN 加载 推荐使用官方或公共 CDN(内容分发网络)加载 jQuery,速度快且稳定。将以下代码添加到 HTML 文件的 <head> 或 <b…

elementui动画

elementui动画

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

vue实现进入动画

vue实现进入动画

Vue 进入动画实现方法 使用 Vue 的过渡系统实现进入动画,主要通过 <transition> 或 <transition-group> 组件结合 CSS 或 JavaSc…

vue实现border动画

vue实现border动画

实现边框动画的方法 在Vue中实现边框动画可以通过CSS动画或过渡效果结合Vue的动态样式绑定来实现。以下是几种常见的方法: 使用CSS过渡和Vue的class绑定 通过动态添加或移除CSS类来触发…

vue实现滑动加载

vue实现滑动加载

滑动加载的实现思路 滑动加载通常通过监听滚动事件,判断是否滚动到页面底部来触发数据加载。Vue中可以通过结合v-for、@scroll事件和计算属性实现。 基础实现方法 监听滚动事件 在包含滚动区域…

js实现图片加载

js实现图片加载

使用Image对象加载图片 通过JavaScript的Image对象可以动态加载图片,适用于需要预加载或动态插入图片的场景。 const img = new Image(); img.src =…