Skip to content

Instantly share code, notes, and snippets.

Created March 13, 2018 14:52
Show Gist options
  • Save anonymous/368897a6cf68cc6ca66dbadb8cc78f61 to your computer and use it in GitHub Desktop.
Save anonymous/368897a6cf68cc6ca66dbadb8cc78f61 to your computer and use it in GitHub Desktop.
.container {
margin: 1em;
padding: 1em;
}
button {
position: relative;
border: none;
padding: 8px;
background-color: rgba(66, 100, 200, .9);
color: rgba(255, 255, 255, 1);
font-weight: bold;
overflow: hidden;
box-shadow: 0 1px 4px rgba(66, 100, 200, .5);
}
.ripple {
position: absolute;
background: rgba(255, 255, 255, .75);
border-radius: 50%;
transform: scale(0);
animation: rippleEffect .5s ease-in;
}
@keyframes rippleEffect {
to {
opacity: 0;
transform: scale(3);
}
100% {
opacity: 0;
transform: scale: (0);
}
}
<div class="container">
<button>Hello, World!</button>
<button>Hello, World!</button>
<button>Hello, World!</button>
<button>Hello, World!</button>
</div>
(function(d) {
var startRipple = function(e) {
var circle = d.createElement('div');
var diameter = Math.max(this.clientWidth, this.clientHeight);
circle.style.width = circle.style.height = diameter + 'px';
circle.style.top = e.clientY - this.offsetTop - (diameter / 2) + 'px';
circle.style.left = e.clientX - this.offsetLeft - (diameter / 2) + 'px';
circle.classList.add('ripple');
this.appendChild(circle);
setTimeout(function() {
circle.parentNode.removeChild(circle);
}, 500);
};
var buttons = document.getElementsByTagName('button');
for (var i = 0; i < buttons.length; i++) {
buttons[i].addEventListener('click', startRipple);
}
})(document);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment