Clique para efetuar o Android Lollipop nos elementos
Provavelmente, você notou aquele efeito cascata (conhecido como ondulação ) quando clica em qualquer elemento em seu android.
Agora você pode implementá-lo em seu aplicativo muito rapidamente.
Você pode escolher entre duas maneiras simples de usar o recurso.
A primeira, as classes que você deseja adiconar o efeito que você pode inserir na .to-ripple
classe
A segunda é você escolhe o elemento que deseja animar, botão, o, li
Veja o código jQuery:
var element = 'li a, button, .to-ripple',
current,
ripple,
d,
x,
y;
// Detect element click
$(element).click(function (e) {
current = $(this);
// .ripple creates the element if there is no exists
if (current.find(".ripple").length === 0) {
// Parent prepares to receive the .ripple element
current.addClass('prepare-ripple');
// .ripple insert the element content
current.prepend("<span class='ripple'></span>");
}
// Sets the .ripple created in a variable
ripple = current.find(".ripple");
// In case of fast double-clicks to the previous animation
ripple.removeClass("on-animate");
// Sets the size of .ripple
if (!ripple.height() && !ripple.width()) {
// Use the width or height of the parent
// What is greater to make a circle that can cover the entire element.
d = Math.max(current.outerWidth(), current.outerHeight());
ripple.css({
height: d,
width: d
});
}
// Coordinated click
// Logic = coordinates in relation to page
// - Parent's position relative to the page
x = e.pageX - current.offset().left - ripple.width() / 2;
y = e.pageY - current.offset().top - ripple.height() / 2;
// Sets the position and adds .on-animate class
ripple.css({
top: y + 'px',
left: x + 'px'
}).addClass("on-animate");
});
Agora, você pode ver apenas a mágica do CSS:
.prepare-ripple {
overflow: hidden;
position: relative;
outline:0;
}
.ripple {
display: block;
position: absolute;
background: rgba(255, 255, 255, .3);
border-radius: 100%;
transform: scale(0);
}
.ripple.on-animate {
animation: ripple 0.65s linear;
}
@keyframes ripple {
100% {
opacity: 0;
transform: scale(2.5);
}
}
Só isso!
Veja-o funcionando ou use o Fork no GitHub .