css里用el,element 自定义 el-loading

前言

虽说,el-loading 自带的loading效果已经满足日常的需求看

但是,美术大大觉得太low  我要我设计的,我不要你觉得我要我觉得

需求

自定义el-loading

正文

从官方需求文档来看,是支持自定义的

1.需要文本的 直接用 element-loading-text

2.有自定义icon 的直接使用 element-loading-spinner

3.需要改一下背景颜色的 直接用 element-loading-background

80c025e39ee298833eb3615f116306c9.png

好巧哦,我要的效果都不是这样的

6f6b252f54a9dbe60729f12ea2c5da1a.png

我没有icon,我只有一张图片

问题一 mask-image css属性用于设置元素上遮罩层的图像

de80f1427d0c0464f57b653005a3c266.png

2b00673c3e6d9d6f79c4bb8c2090eb22.png

我就是要纯css实现loading

这是没有任何样式的图片

3e33ad68d3159bf527fab0ac844ebe2e.png

实现后的效果(emmm 不会搞gif图)

2862a66a3f5bc0454fff4a97e7f21745.png

大概就是这样子 填满 然后反复这运动

贴心贴代码(url('./icon.png');)当然是自行找一张啦

Document

}.mask{width:300px;height:300px;background:linear-gradient(to bottom, #fff 50%, #00f 50%);-webkit-mask-image:url('./icon.png');mask-image:url('./icon.png');-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;animation:raise 1.2s ease-in-out infinite;

}@keyframes raise{0%{

background:linear-gradient(to bottom, #fff 60%, #00f 60%);

}12.5%{background:linear-gradient(to bottom, #fff 57.5%, #00f 57.5%);

}25%{background:linear-gradient(to bottom, #fff 55%, #00f 55%);

}37.5%{background:linear-gradient(to bottom, #fff 52.5%, #00f 52.5%);

}50%{background:linear-gradient(to bottom, #fff 50%, #00f 50%);

}62.5%{background:linear-gradient(to bottom, #fff 47.5%, #00f 47.5%);

}75%{background:linear-gradient(to bottom, #fff 45%, #00f 45%);

}87.5%{background:linear-gradient(to bottom, #fff 42.5%, #00f 42.5%);

}100%{background:linear-gradient(to bottom, #fff 40%, #00f 40%);

}}

Element Plus 中,表格(el-table)组件没有 element-loading-spinner 组件,但是可以通过使用 Element Plus 提供的 Loading 组件来实现加载动画效果。 具体实现步骤如下: 1. 在需要使用表格的页面中,引入 Element Plus: ```html <link rel="stylesheet" href="https://unpkg.com/element-plus/lib/theme-chalk/index.css"> <script src="https://unpkg.com/vue@next"></script> <script src="https://unpkg.com/element-plus@next"></script> ``` 2. 在需要显示表格和加载动画的位置,添加 Loading 组件和 el-table 组件: ```html <el-loading :visible="loading"> <el-table :data="tableData"> <!-- 表格列定义 --> </el-table> </el-loading> ``` 其中,`:visible="loading"` 绑定了 loading 变量,用于控制加载动画是否显示。`:data="tableData"` 绑定了 tableData 变量,用于显示表格数据。 3. 在 Vue 实例中,定义 loading 和 tableData 变量,以及获取数据的方法: ```js const app = Vue.createApp({ data() { return { loading: false, // 是否显示加载动画 tableData: [], // 表格数据 }; }, methods: { getData() { this.loading = true; // 显示加载动画 // 异步获取数据 setTimeout(() => { this.tableData = [ { name: '张三', age: 18 }, { name: '李四', age: 20 }, { name: '王五', age: 22 }, ]; this.loading = false; // 隐藏加载动画 }, 1000); }, }, }); ``` 在 getData 方法中,先将 loading 设置为 true,显示加载动画,然后异步获取数据,获取完成后将数据赋值给 tableData,最后将 loading 设置为 false,隐藏加载动画。 4. 在页面加载完成后,调用 getData 方法获取数据: ```js app.mount('#app'); app.getData(); ``` 完整代码示例: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Element Plus 表格加载动画示例</title> <link rel="stylesheet" href="https://unpkg.com/element-plus/lib/theme-chalk/index.css"> <script src="https://unpkg.com/vue@next"></script> <script src="https://unpkg.com/element-plus@next"></script> </head> <body> <div id="app"> <el-loading :visible="loading"> <el-table :data="tableData"> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="age" label="年龄"></el-table-column> </el-table> </el-loading> </div> <script> const app = Vue.createApp({ data() { return { loading: false, // 是否显示加载动画 tableData: [], // 表格数据 }; }, methods: { getData() { this.loading = true; // 显示加载动画 // 异步获取数据 setTimeout(() => { this.tableData = [ { name: '张三', age: 18 }, { name: '李四', age: 20 }, { name: '王五', age: 22 }, ]; this.loading = false; // 隐藏加载动画 }, 1000); }, }, }); app.mount('#app'); app.getData(); </script> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值