Remake made from: Vue-ui-preloader.
Main changes
- Added support for Vue 3.
- Fixed the issue where the
"overflowHidden"
class remained active after the first use. - Added options to add text to the loaders and customize them.
Demo and playground
Live demo - https://vue3-ui-preloader.netlify.app/
Playground Website.
Adjust the settings using the playground options. On the bottom of the page you will find the source code that you can directly use in your project or you can manually change the props.
npm link - https://www.npmjs.com/package/vue3-ui-preloader
Vue 3 blitz link - https://stackblitz.com/edit/vue-caijgu?file=src%2FApp.vue
Installation
yarn add vue3-ui-preloader
npm install --save vue3-ui-preloader
Usage
Vue 3 blitz link - https://stackblitz.com/edit/vue-caijgu?file=src%2FApp.vue
In your main.js
import { createApp } from 'vue'
import App from './App.vue'
import loader from "vue3-ui-preloader";
import "vue3-ui-preloader/dist/loader.css"
const app = createApp(App)
app.component('loader', loader)
app.mount('#app')
In your template
<template>
<loader name="spinning" loadingText="LOADING..." textColor="#ffffff" textSize="20" textWeight="500" object="#ff9633" color1="#ffffff" color2="#17fd3d" size="5" speed="2" bg="#343a40" objectbg="#999793" opacity="80" :disableScrolling="true"></loader>
</template>
NOTE: The best way to control the loader is to have a flag and use it in a v-if
or v-show
statement.
You can either use the playground website to automatically get all the props set or you can set them manaully using the below prop list. You can also resort to not passing any prop, in this case the preloader will use default settings.
Via CDN
CDN demo link - https://jsfiddle.net/1t0jyeqh/10/
In your index.html
<script src="https://unpkg.com/vue3-ui-preloader"></script>
<link rel="stylesheet" type="text/css" href="https://unpkg.com/vue3-ui-preloader/dist/loader.css">
In your template
<div id="app">
<loader name="spinning" loadingText="LOADING..." textColor="#ffffff" textSize="20" textWeight="500" object="#ff9633" color1="#ffffff" color2="#17fd3d" size="5" speed="2" bg="#343a40" objectbg="#999793" opacity="80" :disableScrolling="true"></loader>
</div>
In your main.js
const { createApp } = Vue
const app = createApp(loader)
app.mount('#app')
Props
Name | Type | Default | Description |
---|
name | string | 'spinning' | decides the type of loader. (Ex: spinning, dots, loading, circular, box) |
object | string | '#ff9633' | set the color of the loaders. (Ex: hex or color) |
loadingText | string | 'LOADING...' | set the text of some loaders. |
textColor | string | '#ffffff' | set the color of the loadingText. (Ex: hex or color) |
textSize | number | '15' | set the size of the loadingText. |
textWeight | number/string | '800' | set the weight of the loadingText. (Ex: 800, bold) |
color1 | string | only for circular | set the color of the circular loader disk1. (Ex: hex or color) |
color2 | string | only for circular | set the color of the circular loader disk2. (Ex: hex or color) |
size | number | 5 | set the size of loader. |
bg | string | '#343a40' | set the color of the loader background. (Ex: hex or color) |
objectbg | string | '#999793' | set the color of the loader object background. (Ex: hex or color) |
opacity | number | 80 | set the opacity of background. |
speed | number | 2 | animation speed in seconds. |
disableScrolling | boolean | false | disable page scrolling when preloader is open. |
Author
© Gonçalo Bastos