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日

相关文章

  • HTML文本格式化

    HTML文本格式化是将HTML代码中的文本内容按照特定的格式进行展示,包括字体、颜色、对齐方式等。 HTML 中有许多用来格式化文本的标签,如下表所示: 标签 描述 <b>…</b> 加粗标签中的字体 <em>…</em> 强调标签中的内容,并使标签中的字体倾斜 <i>…</i&g…

    Web开发基础 2023年3月15日
    00
  • CSS 常用中文字体 Unicode 编码表

    以下是详细讲解 “CSS 常用中文字体 Unicode 编码表”的完整攻略: 什么是 Unicode 编码 Unicode是一个字符集,规定了每个字符对应的唯一编号,它包含了全世界所有的字符,不仅仅包括了中西文字符,还包括了各种符号、形状以及图形等各种元素。 Unicode 主要是通过四个十六进制数来表示每个字符,例如汉字“好”的 Unicode 编码是U+…

    css 2023年6月9日
    00
  • HTML外部样式表如何引入CSS样式

    以下是“HTML外部样式表如何引入CSS样式”的完整攻略: HTML外部样式表如何引入CSS样式 在 HTML 中,可以使用外部样式表来引入 CSS 样式。以下是一些常见的用法。 使用 <link> 标签 可以使用 <link> 标签来引入外部样式表,例如: <!DOCTYPE html> <html> &lt…

    css 2023年5月18日
    00
  • 在HTML中引入CSS的几种方式介绍

    在HTML中,引入CSS样式网页可以更好的装扮和展示,让用户获得更好的浏览体验。下面我们将详细讲解在HTML中引入CSS的几种方式。 内联样式 内联样式是直接将样式写在HTML标签中,使用style属性。内联样式的优点是方便快捷,可以快速地为单个元素定制样式,然而内联样式的劣势是使得HTML文档变得杂乱无章,不利于维护和修改。 <!DOCTYPE ht…

    css 2023年6月9日
    00
  • CSS实例:超酷的网站导航按钮

    对于“CSS实例:超酷的网站导航按钮”这个主题,我给出完整的攻略如下: 1. 确定HTML结构 首先我们要对需要制作的超酷的导航按钮的HTML结构进行设计,这里我们可以先采用一个简单的ul-li结构: <ul> <li><a href="#">Home</a></li> <…

    css 2023年6月10日
    00
  • SpringBoot+Thymeleaf静态资源的映射规则说明

    首先,我们需要了解 Spring Boot 和 Thymeleaf 都是 web 开发的常用工具,而静态资源的映射规则是很重要的一部分。 静态资源包括图片、CSS、JavaScript 等文件,是可以直接被客户端获取的资源文件。在 Spring Boot + Thymeleaf 的项目中,我们通常在 src/main/resources/static 目录下…

    css 2023年6月10日
    00
  • 关于vue.js过渡css类名的理解(推荐)

    关于vue.js过渡css类名的理解(推荐)这个主题,我可以给您提供以下完整攻略。 1.背景概述 Vue.js是一个渐进式JavaScript框架,它提供了过渡功能,使得我们可以在组件的状态或者父组件和子组件之间的切换时,清晰地呈现过渡动画的过程。这个过程中,Vue.js提供了丰富的css类名控制,帮助我们实现更加复杂和细致的动画效果。 2.过渡类名 Vue…

    css 2023年6月10日
    00
  • 20 个 CSS 高级技巧汇总(推荐)

    20 个 CSS 高级技巧汇总(推荐) 本篇文章从以下几个方面介绍了 20 项 CSS 高级技巧: CSS 渐变 多列布局 background-clip 透明度 混合模式 CSS 坐标系统 CSS 形状 文字阴影 overflow 自定义下划线 格子背景 CSS 动画 filter border-radius CSS 变量 边栏布局 伸缩容器 text-o…

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