When a button is pressed, the background changes with the iconic Material Design animation. This can also be applied for other uses (buttons etc.).
A Pen by Ives van Hoorne on CodePen.
| <body> | |
| <div class="background"></div> | |
| <div> | |
| <div class="button"></div> | |
| <div class="button"></div> | |
| <div class="button"></div> | |
| <div class="button"></div> | |
| </div> | |
| </body> |
When a button is pressed, the background changes with the iconic Material Design animation. This can also be applied for other uses (buttons etc.).
A Pen by Ives van Hoorne on CodePen.
| var btn = $('.button'); | |
| var background = $('.background'); | |
| var width = 0; | |
| var height = 0; | |
| var r = 0; | |
| setSize(); | |
| function setSize() { | |
| width = $(window).width(); | |
| height = $(window).height(); | |
| r = Math.sqrt(width * width + height * height); | |
| } | |
| $(window).resize(setSize); | |
| btn.click(function(e) { | |
| btn.removeClass('current'); | |
| $(this).addClass('current'); | |
| var circle = $("<div unselectable='on' id='circle'></div>"); | |
| background.append(circle); | |
| circle.css({ | |
| position: 'absolute', | |
| 'background-color': $(this).css('background-color'), | |
| width: 0, | |
| height: 0, | |
| "border-radius": "50%", | |
| left: e.pageX, | |
| top: e.pageY, | |
| 'margin-left': 0, | |
| 'margin-top': 0, | |
| 'webkit-user-select': 'none', | |
| '-moz-user-select': 'none', | |
| '-ms-user-select': 'none' | |
| }); | |
| circle.animate({ | |
| width: (r * 2), | |
| height: (r * 2), | |
| 'margin-left': -r, | |
| 'margin-top': -r | |
| }, { | |
| duration: 600, | |
| easing: "easeInOutCubic", | |
| queue: false, | |
| complete: function() { | |
| circle.parent().css('background-color', | |
| $(this).css('background-color')); | |
| circle.detach(); | |
| } | |
| }); | |
| }); |
| <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> | |
| <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script> |
| @import url(https://fonts.googleapis.com/css?family=Roboto); | |
| $color1: #189FFF; | |
| $color2: #FF440D; | |
| $color3: #14C239; | |
| $color4: #9121E8; | |
| html body { | |
| font-family: 'Roboto', sans-serif; | |
| width: 100%; | |
| height: 100%; | |
| margin: 0; | |
| padding: 0; | |
| background-color: #f5f5f5; | |
| } | |
| .background { | |
| position: fixed; | |
| width: 100%; | |
| height: 100%; | |
| } | |
| $button-width: 100px; | |
| $button-height: 50px; | |
| $button-margin: 50px; | |
| @mixin button-style($i, $color, $top, $bottom, $left, $right) { | |
| &:nth-child(#{$i}) { | |
| @if $left != 0 {left: $left * $button-margin;} | |
| @if $right != 0 {right: $right * $button-margin;} | |
| @if $bottom != 0 {bottom: $bottom * $button-margin;} | |
| @if $top != 0 {top: $top * $button-margin;} | |
| background-color: $color; | |
| &:after { | |
| content: '' + $color; | |
| } | |
| } | |
| } | |
| .button { | |
| transition: 0.3s ease all; | |
| display: block; | |
| text-align: center; | |
| position: fixed; | |
| cursor: pointer; | |
| width: $button-width; | |
| height: $button-height; | |
| box-shadow: 0 3px 17px 0 rgba(0, 0, 0, 0.2); | |
| @for $i from 1 through 4 { | |
| @if $i == 1 { | |
| @include button-style($i, $color1, 1, 0, 1, 0); | |
| } @else if $i == 2 { | |
| @include button-style($i, $color2, 1, 0, 0, 1); | |
| } @else if $i == 3 { | |
| @include button-style($i, $color3, 0, 1, 1, 0); | |
| } @else if $i == 4 { | |
| @include button-style($i, $color4, 0, 1, 0, 1); | |
| } | |
| } | |
| &:hover { | |
| transition: 0.3s ease all; | |
| box-shadow: 0 5px 25px 0 rgba(0, 0, 0, 0.2); | |
| transform: translateY(-2px); | |
| } | |
| &:after { | |
| font-size: 18px; | |
| color: white; | |
| line-height: $button-height; | |
| } | |
| &:active { | |
| transition: 0.3s ease all; | |
| border: none; | |
| box-shadow: none; | |
| transform: none; | |
| } | |
| &.current { | |
| transition: 0.3s ease all; | |
| border: none; | |
| box-shadow: none; | |
| pointer-events: none; | |
| } | |
| } |
| <link href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/themes/smoothness/jquery-ui.css" rel="stylesheet" /> |