VUE-ElementUI 自定义Loading图操作

下面是关于VUE-ElementUI 自定义Loading图操作的完整攻略及示例:

1. 什么是VUE-ElementUI自定义Loading图操作?

web开发中,我们经常会遇到需要显示loading效果的场景,来提示用户当前正在加载中。VUE-ElementUI自带的Loading组件在满足一些基础需求的同时,也有不足的地方。因此,我们可以通过自定义Loading图来优化用户的体验。

2. 如何进行VUE-ElementUI自定义Loading图操作?

2.1 确定Loading图大小和样式

首先,我们需要确定Loading图的大小和样式。常见的Loading图样式可以参考 cssload.netloading.io

2.2 创建组件

接着,创建一个自定义Loading组件,在组件的模板中加入Loading图。

<template>
  <div class="custom-loading">
    <div class="loading-img"></div>
  </div>
</template>

<style>
.custom-loading {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: rgba(255, 255, 255, 0.8);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 999;
}

.loading-img {
  width: 80px;
  height: 80px;
  animation: loading 2s linear infinite;
  /* 加载图的样式 */
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
</style>

2.3 注册组件

在main.js中引入并注册组件。

import CustomLoading from "@/components/CustomLoading.vue";

Vue.component("CustomLoading", CustomLoading);

2.4 使用组件

在需要显示Loading图的地方,使用<CustomLoading />标签即可。例如,在某个按钮的点击事件中需要显示Loading图,代码如下:

<template>
  <div>
    ... // 其他组件内容
    <button @click="handleClick">点击我</button>
    ... // 其他组件内容
    <CustomLoading v-if="loading"></CustomLoading>
  </div>
</template>

<script>
export default {
  data() {
    return {
      loading: false
    };
  },
  methods: {
    handleClick() {
      this.loading = true;
      // 处理异步操作
      setTimeout(() => {
        this.loading = false;
      }, 2000);
    }
  }
};
</script>

3. 示例

3.1 示例一

下面是一个简单的示例,展示了如何在组件的created生命周期中动态修改Loading图的样式。

<template>
  <div>
    <CustomLoading :img="loadingImg"></CustomLoading>
  </div>
</template>

<script>
export default {
  data() {
    return {
      loadingImg: {
        // 默认样式
        width: "50px",
        height: "50px",
        backgroundColor: "#fff",
        borderRadius: "50%",
        boxShadow: "0 3px 5px rgba(0, 0, 0, 0.2)",
        animation: "loading 1s linear infinite"
      }
    };
  },
  created() {
    // 修改样式
    setTimeout(() => {
      this.loadingImg.width = "100px";
      this.loadingImg.height = "100px";
      this.loadingImg.backgroundColor = "#ccc";
      this.loadingImg.borderRadius = "0";
      this.loadingImg.boxShadow = "none";
    }, 3000);
  }
};
</script>

3.2 示例二

下面是一个复杂一些的示例,展示了如何在axios请求中显示和隐藏自定义Loading图。

<template>
  <div>
    <button @click="handleClick">发起请求</button>
    <ul>
      <li v-for="(item, index) in data" :key="index">{{ item }}</li>
    </ul>
    <CustomLoading v-if="loading" :img="loadingImg"></CustomLoading>
  </div>
</template>

<script>
import axios from "axios";

export default {
  data() {
    return {
      data: [],
      loading: false,
      loadingImg: {
        // 默认样式
        width: "50px",
        height: "50px",
        backgroundColor: "#fff",
        borderRadius: "50%",
        boxShadow: "0 3px 5px rgba(0, 0, 0, 0.2)",
        animation: "loading 1s linear infinite"
      }
    };
  },
  methods: {
    handleClick() {
      this.loading = true;
      axios
        .get("https://jsonplaceholder.typicode.com/todos")
        .then(res => {
          this.data = res.data.map(item => item.title);
          this.loading = false;
        })
        .catch(err => {
          console.log(err);
        });
    }
  }
};
</script>

以上便是关于VUE-ElementUI自定义Loading图操作的完整攻略及示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:VUE-ElementUI 自定义Loading图操作 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 10 套华丽的CSS3 按钮小结

    很高兴为您详细讲解“10 套华丽的CSS3 按钮小结”的完整攻略。 简介 在这篇文章中,我们将会学习到如何使用 CSS3 创建华丽的按钮。本文提供了 10 种不同样式的按钮,每一种样式都有相应的代码和效果演示。这些按钮可以应用于各种不同的网站,并且非常酷炫。下面让我们开始进入正题。 步骤 第一步:下载所需代码 首先,您需要下载所需的代码。在本文中,我们将使用…

    css 2023年6月10日
    00
  • Vite+React+TypeScript手撸TodoList的项目实践

    下面是针对“Vite+React+TypeScript手撸TodoList的项目实践”的详细攻略。 1.前置技能要求 在进行Vite+React+TypeScript手撸TodoList的项目实践前,需要掌握以下几个技能: 熟悉TypeScript语言和基本语法; 熟悉React框架及其常用的Api; 了解Vite构建工具的使用和基本原理。 2.环境搭建与初…

    css 2023年6月11日
    00
  • HTML中img标签只显示图片中心位置的方法(三种方法)

    下面我将详细讲解三种方法让HTML中的img标签只显示图片中心位置。 方法一:使用background-image 通过将图片作为 background-image 设置在 div 或者其他块元素上,然后设置 background-position 属性为 center,即可实现只显示图片中心位置。 示例代码: <div class="ima…

    css 2023年6月9日
    00
  • CSS实现输入框的周围高亮效果让边框发亮

    下面是CSS实现输入框的周围高亮效果让边框发亮的完整攻略: 1. box-shadow属性 可以使用CSS的box-shadow属性来实现输入框边框高亮。box-shadow属性可以在元素周围添加一个或多个阴影。 例如,下面的代码可以让输入框的边框在获取焦点时出现一个浅蓝色阴影: input:focus { box-shadow: 0 0 4px #66bf…

    css 2023年6月10日
    00
  • 基于Bootstrap框架菜鸟入门教程(推荐)

    基于Bootstrap框架菜鸟入门教程 介绍 本篇教程将介绍基于Bootstrap框架的初学者入门教程。Bootstrap是一个非常流行的前端开源框架,由Twitter公司开发,包含了一系列的CSS、JavaScript和HTML组件,可以帮助开发者快速构建前端页面。该框架具备响应式设计、浏览器兼容性好等特点,学习起来非常容易,因此深受广大前端开发爱好者的欢…

    css 2023年6月10日
    00
  • CSS 的简写【新手必看】

    当我们使用 CSS 为网页添加样式时,会遇到很多重复的样式设置。为了提高编码效率,CSS 提供了简写属性,用于同时设置多个属性值。 什么是 CSS 的简写属性? CSS 的简写属性是将多个属性声明同时设置在一个属性中的方式,如:margin、padding 等。使用简写属性可以让我们更方便地编写 CSS 样式,减少 CSS 代码量,提高代码的可读性和可维护性…

    css 2023年6月9日
    00
  • overflow:auto的用法详解

    下面我来详细讲解“overflow:auto的用法详解”。 overflow的含义 在介绍overflow:auto前,我们先要了解overflow属性的含义。overflow属性是用于控制一个盒子中内容的溢出情况的。该属性常见的值有以下几种: overflow:visible(默认值):内容会自动溢出到盒子外,不会自动进行裁剪。 overflow:hidd…

    css 2023年6月10日
    00
  • JSP实现网页访问统计

    请看以下详细讲解。 JSP实现网页访问统计的完整攻略 1. 准备工作 在开始实现网页访问统计之前,需要先完成以下准备工作: 确定统计指标:如访问量、访客数、独立IP数等。 添加统计脚本:在JSP页面底部添加JavaScript脚本,向服务器发送访问统计数据。 创建统计数据库表:用于存储访问统计数据,并准备好与JSP页面相对应的请求参数。 2. 统计脚本的添加…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部