写一个vue请求加载动画代码
时间: 2024-05-10 22:21:13 浏览: 121
以下是一个简单的Vue请求加载动画代码:
```html
<template>
<div>
<button @click="getData">加载数据</button>
<div v-if="loading" class="loading">
<div class="loading-bar"></div>
<div class="loading-bar"></div>
<div class="loading-bar"></div>
<div class="loading-bar"></div>
<div class="loading-bar"></div>
</div>
<ul v-if="!loading">
<li v-for="item in data" :key="item.id">{{ item.name }}</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
loading: false,
data: []
};
},
methods: {
getData() {
this.loading = true;
axios.get('https://jsonplaceholder.typicode.com/users').then(response => {
this.data = response.data;
this.loading = false;
});
}
}
};
</script>
<style>
.loading {
display: flex;
justify-content: center;
align-items: center;
height: 200px;
}
.loading-bar {
display: inline-block;
width: 4px;
height: 18px;
margin: 0 2px;
background-color: #333;
animation: loading 1s ease-in-out infinite;
}
.loading-bar:nth-child(1) {
animation-delay: 0s;
}
.loading-bar:nth-child(2) {
animation-delay: 0.1s;
}
.loading-bar:nth-child(3) {
animation-delay: 0.2s;
}
.loading-bar:nth-child(4) {
animation-delay: 0.3s;
}
.loading-bar:nth-child(5) {
animation-delay: 0.4s;
}
@keyframes loading {
0% {
transform: scale(1);
}
20% {
transform: scale(1, 2.5);
}
40% {
transform: scale(1);
}
}
</style>
```
在这个代码中,我们使用了一个loading变量来控制加载动画的显示和隐藏。在点击“加载数据”按钮时,我们将loading设置为true,然后发送一个请求来获取数据。在请求完成后,我们将数据保存到data数组中,并将loading设置为false,这样加载动画就会消失,而数据就会显示出来。
在HTML中,我们使用v-if指令来控制加载动画和数据列表的显示。如果loading为true,则显示加载动画,否则显示数据列表。
在CSS中,我们使用了一个简单的动画来创建加载动画效果。这个动画会让loading-bar元素在不同的时间间隔内缩放,从而创建出一个类似于“膨胀”的效果。
阅读全文