Feat UI - Added uploading animation

This commit is contained in:
PragatiVerma18 2020-10-11 00:59:24 +05:30
parent b0959721bf
commit 1325e31b06
2 changed files with 129 additions and 5 deletions

View File

@ -31,3 +31,111 @@ body {
.navbar { .navbar {
margin-bottom: 20px !important; margin-bottom: 20px !important;
} }
.hide {
display: none;
}
.button {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 12.5rem;
margin: 0;
padding: 1.5rem 3.125rem;
background-color: #3498db;
border: none;
border-radius: 0.3125rem;
box-shadow: 0 12px 24px 0 rgba(0, 0, 0, 0.2);
color: white;
font-weight: 400;
overflow: hidden;
}
.button:before {
position: absolute;
content: "";
bottom: 0;
left: 0;
width: 0%;
height: 100%;
background-color: #54d98c;
}
.button span {
position: absolute;
line-height: 0;
}
.button span i {
transform-origin: center center;
}
.button span:nth-of-type(1) {
top: 50%;
transform: translateY(-50%);
}
.button span:nth-of-type(2) {
top: 100%;
transform: translateY(0%);
font-size: 24px;
}
.button span:nth-of-type(3) {
display: none;
}
.active {
background-color: #2ecc71;
}
.active:before {
width: 100%;
transition: width 30s linear !important;
}
.active span:nth-of-type(1) {
top: -100%;
transform: translateY(-50%);
}
.active span:nth-of-type(2) {
top: 50%;
transform: translateY(-50%);
}
.active span:nth-of-type(2) i {
animation: loading 10000ms linear infinite !important;
}
.active span:nth-of-type(3) {
display: none;
}
.finished {
background-color: #54d98c;
}
.finished .submit {
display: none;
}
.finished .loading {
display: none;
}
.finished .check {
display: block !important;
font-size: 24px;
animation: scale 0.5s linear;
}
.finished .check i {
transform-origin: center center;
}
@keyframes loading {
100% {
transform: rotate(360deg);
}
}
@keyframes scale {
0% {
transform: scale(10);
}
50% {
transform: scale(0.2);
}
70% {
transform: scale(1.2);
}
90% {
transform: scale(0.7);
}
100% {
transform: scale(1);
}
}

View File

@ -12,6 +12,7 @@
type="text/css" type="text/css"
href="{{ url_for('static',filename='css/style.css') }}" href="{{ url_for('static',filename='css/style.css') }}"
/> />
<script src="https://kit.fontawesome.com/22be60108b.js" crossorigin="anonymous"></script>
<title>MLH Quizzet</title> <title>MLH Quizzet</title>
</head> </head>
@ -74,13 +75,28 @@
} }
}; };
</script> </script>
<input <button class="button has-text-centered is-large is-fullwidth is-dark">
type="submit" <span class="submit has-text-centered" type="submit"
name="upload file" name="upload file">Submit</span>
class="button has-text-centered is-large is-fullwidth is-dark" <span class="loading"><i class="fa fa-refresh"></i></span>
/> <span class="check"><i class="fa fa-check"></i></span>
</button>
</form> </form>
</div> </div>
</main> </main>
<script>const button = document.querySelector('.button');
const submit = document.querySelector('.submit');
function toggleClass() {
this.classList.toggle('active');
}
function addClass() {
this.classList.add('finished');
}
button.addEventListener('click', toggleClass);
button.addEventListener('transitionend', toggleClass);
button.addEventListener('transitionend', addClass);</script>
</body> </body>
</html> </html>