Fancy Cloud Sync Button

栏目: IT技术 · 发布时间: 5年前

内容简介:Button/progress-bar with cloud synchronization animation in vanilla JavaScript, Vue.js and Web component formatsThis component is available in three versions:

Cloud Sync Button

Button/progress-bar with cloud synchronization animation in vanilla JavaScript, Vue.js and Web component formats

Fancy Cloud Sync Button

How to use

This component is available in three versions:

  1. Vue.js component - in the src directory
  2. Vanilla JavaScript code - in the vanilla-javascript-version directory
  3. As a Web component - in the web-component-version directory

Vanilla JavaScript version

The code is self-explanatory

Web Component version

It's built using Custom Elements - a well supported technology nowadays. For older browsers a polifill is available

<cloud-sync-button options='{
	"loadColor": "#81d427",
	"strokeColor": "#fff",
	"btnColor": "#725fdf",
	"titleStart": "Sync",
	"titleEnd": "Done"
}' />
const aBtn = document.querySelector("cloud-sync-button");
...
aBtn.initSync();
aBtn.updateSync(10);
aBtn.completeSync();
aBtn.resetSync();

Vue version

Vue component consists of one CloudSyncButton.vue file that can be copy-pasted into your Vue.js project or can be plugged in as an NPM package:

npm install @vuesence/cloud-sync-button --save

Then you can use it in the your Vue code:

<template>
	<div id="app">
		<CloudSyncButton
			title="Sync"
			titleDone="Done"
			@click.native="startSync"
			:syncProgress="syncProgress"
			:inSync="inSync"
			:styling="{
                loadColor: '#81d427',
                strokeColor: '#fff',
                btnColor: '#011e4a'
            }"
		/>
	</div>
</template>

<script>
	import CloudSyncButton from "@vuesence/cloud-sync-button";

	export default {
		name: "App",
		components: {
			CloudSyncButton,
		},
		data() {
			return {
				syncProgress: 0,
				inSync: false,
			};
		},
		methods: {
			startSync() {
				this.syncProgress = 0;
				this.inSync = true;
			},
			stopSync() {
				this.syncProgress = 0;
				this.inSync = false;
			},
			completeSync() {
				this.syncProgress = 100;
				setTimeout(() => {
					this.stopSync();
				}, 2000);
			},
		},
	};
</script>

Two reactive parameters handle the button state: inSync - starts and stops the synchronization, and syncProgress - shows the synchronization progress.

startSync , stopSync and completeSync methods are used to manage the button representation programmatically.

For more details please see an example of usage in the App.vue

Demo

https://altrusl.github.io/vuesence-cloud-sync-button/

Playground

Try it on codesandbox.io

Check out my other Vue.js components

  • Vuesence book - minimalistic Vue.js based documentation component
  • Sliding header - Vue.js component representing sliding header (or two different headers)
  • Modal Window - simple lightweight Modal Window Vue.js component

You like Cloud Sync Button? Star it and retweet it!

Troubleshooting

Any bugs, issues, feature and pull requests are welcome

Please use GitHub's issue reporter or send me an email

Contribution

Contribution is always welcome and recommended. Here is how:

  • Fork the repository
  • Clone to your machine
  • Make your changes
  • Create a pull request

License

@vuesence/cloud-sync-buttonpackage is freely distributable under the terms of the MIT license .


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Unix/Linux编程实践教程

Unix/Linux编程实践教程

Bruce Molay、杨宗源、黄海涛 / 杨宗源、黄海涛 / 清华大学出版社 / 2004-10-1 / 56.00元

操作系统是计算机最重要的系统软件。Unix操作系统历经了几十年,至今仍是主流的操作系统。本书通过解释Unix的工作原理,循序渐进地讲解实现Unix中系统命令的方法,让读者理解并逐步精通Unix系统编程,进而具有编制Unix应用程序的能力。书中采用启发式、举一反三、图示讲解等多种方法讲授,语言生动、结构合理、易于理解。每一章后均附有大量的习题和编程练习,以供参考。 本书适合作为高等院校计算机及......一起来看看 《Unix/Linux编程实践教程》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具