1
0
Fork 0
dri/src/components/LoadableText.vue

47 lines
725 B
Vue
Raw Normal View History

2018-09-26 22:27:42 +08:00
<template>
2018-09-29 16:37:40 +08:00
<span :class="{ loading: !text }">{{ text }}<span /><span /><span /></span>
2018-09-26 22:27:42 +08:00
</template>
<script>
export default {
2018-09-27 13:41:08 +08:00
props: {
text: String,
},
2018-09-26 22:27:42 +08:00
};
</script>
<style scoped>
span.loading > span {
2018-09-29 16:37:40 +08:00
display: inline-block;
background: #000;
border-radius: 0.09375em;
width: 0.1875em;
height: 0.1875em;
margin: 0.25em 0.075em;
opacity: 0.5;
2018-09-26 22:27:42 +08:00
}
span.loading > span:nth-child(1) {
2018-09-29 16:37:40 +08:00
animation: fade 1s ease 0s infinite;
2018-09-26 22:27:42 +08:00
}
span.loading > span:nth-child(2) {
2018-09-29 16:37:40 +08:00
animation: fade 1s ease 0.333s infinite;
2018-09-26 22:27:42 +08:00
}
span.loading > span:nth-child(3) {
2018-09-29 16:37:40 +08:00
animation: fade 1s ease 0.666s infinite;
2018-09-26 22:27:42 +08:00
}
@keyframes fade {
2018-09-29 16:37:40 +08:00
0% {
opacity: 1;
}
33.3% {
opacity: 0.25;
}
66.6% {
opacity: 0.25;
}
100% {
opacity: 1;
}
2018-09-26 22:27:42 +08:00
}
</style>