main
.emojis
each emoji in ['😀','😍','😲','😡','💘']
.emoji= emoji
View Compiled
html,
body {
height: 100%;
}
body {
margin: 0;
background-color: #ededed;
}
main {
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.emojis {
display: flex;
flex-direction: row;
background-color: #ffffff;
align-items: center;
padding: 0.5rem 1.5rem 1rem 1.5rem;
border-radius: 4rem;
box-shadow: 0 2px 12px 2px rgba(0, 0, 0, 0.1);
.emoji {
cursor: pointer;
user-select: none;
font-size: 2rem;
margin: 0 0.5rem;
transition: all 0.3s;
&.active {
animation-name: emoji;
animation-duration: 0.6s;
animation-direction: forwards;
animation-timing-function: ease-out;
animation-iteration-count: 1;
}
&:hover {
transform: scale(1.5);
}
}
}
@keyframes emoji {
5% {
transform: translateY(1rem);
}
10% {
transform: translateY(0) scale(1);
opacity: 1;
}
50% {
transform: translateY(-4rem) scale(1.5) rotateY(90deg);
}
80% {
opacity: 0;
}
100% {
transform: translateY(-8rem) scale(2) rotateY(180deg);
opacity: 0;
}
}
View Compiled
document.querySelectorAll(".emoji").forEach((el) => {
el.addEventListener("click", () => {
document
.querySelectorAll(".emoji.active")
.forEach((active) => active.classList.remove("active"));
requestAnimationFrame(() => el.classList.add("active"));
});
});
View Compiled
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.