css + iview 加载动画

html

<template>
  <div class="loading">
    <Spin class="img">
      <Icon type="load-c" size=38 class="demo-spin-icon-load"></Icon>
      <div>正在拼命加载中...</div>
    </Spin>
  </div>
</template>

css


<style scoped>
.loading {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.3);
  z-index: 999;
}
.loading .img {
  display: block;
  width: 200px;
  height: 100px;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  font-size: 18px;
  color: #fff;
}
/*加载中icon样式*/
.demo-spin-icon-load {
  animation: ani-demo-spin 1s linear infinite;
}
@keyframes ani-demo-spin {
  from {
    transform: rotate(0deg);
  }
  50% {
    transform: rotate(180deg);
  }
  to {
    transform: rotate(360deg);
  }
}
</style>
在使用Vue框架结合iView组件库进行开发时,实现文件切片上传功能,通常需要将大文件分割成多个小文件片段,并逐一上传至服务器,待所有片段上传完成后再进行文件的合并操作。以下是一个基本的实现思路: 1. 首先,在Vue组件中引入iView组件库,并准备一个文件上传组件,例如`Upload`。 2. 在组件的数据对象中,设置上传文件相关的状态和片段信息,如文件列表、文件大小、当前上传的片段、每个片段的大小等。 3. 创建一个方法,用于处理文件的切片逻辑。当用户选择文件后,根据文件大小和设定的每个片段大小计算出总共需要上传多少个片段。 4. 在切片方法中,可以使用JavaScript的`File` API来读取文件,并通过`slice`方法来获取每个片段。 5. 利用iView的`Upload`组件,设置上传配置,包括`action`(上传的接口地址)、`beforeUpload`(上传前的钩子函数,用于实现切片逻辑)、`onSuccess`和`onError`(上传成功或失败的回调函数)。 6. 在`beforeUpload`钩子中,阻止默认的上传行为,按照切片逻辑处理文件,并依次使用`Upload`组件的`$upload`方法上传每个文件片段。 7. 上传过程中,可以更新上传状态,显示当前上传进度和结果。 8. 所有片段上传完成后,通过后端接口通知服务器进行文件合并。 9. 后端接口需要处理接收到的文件片段,并正确合并成原始文件。 以下是一个简化的代码示例: ```javascript <template> <Upload action="/api/upload" :before-upload="beforeUpload" :on-success="onSuccess" :on-error="onError"> <Button type="primary">选择文件</Button> </Upload> </template> <script> export default { data() { return { fileList: [], // 文件列表 chunkSize: 1024 * 1024 * 2, // 每个片段大小为2MB // 其他需要的数据和方法... }; }, methods: { beforeUpload(file) { // 切片逻辑 const chunks = Math.ceil(file.size / this.chunkSize); for (let i = 0; i < chunks; i++) { const chunkFile = file.slice(i * this.chunkSize, (i + 1) * this.chunkSize); // 调用上传函数 this.uploadChunk(chunkFile, file.name, i); } return false; // 阻止默认上传 }, uploadChunk(chunkFile, fileName, chunkIndex) { // 实现上传逻辑... }, onSuccess(response, file, fileList) { // 上传成功处理... }, onError(error, file, fileList) { // 上传失败处理... } } }; </script> ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晴天有点孤单

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值