//PEN HEADER
header.header
h1.header__title SVG icon animations with Anime.js
.header__btns.btns
a.header__btn.btn(href="https://github.com/nat-davydova/svg-animations-1" title="Check on Github" target="_blank") Check on Github
//PEN CONTENT
.content
//content inner
.content__inner
//single icon
.icon-block
//icon
.cart-icon.icon
svg(height="426pt" viewBox="-6 0 426 426.82755" width="426pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink")
path(class="arrow" fill="#fff" stroke="#000" stroke-width="3" d="m207.859375 80.316406 35 30c.007813.007813.023437.015625.035156.023438.289063.246094.597657.464844.925781.660156.042969.027344.085938.054688.128907.078125.320312.179687.648437.335937.992187.464844l.160156.058593c.339844.121094.6875.210938 1.042969.277344l.15625.023438c.738281.128906 1.488281.128906 2.226563 0l.15625-.023438c.355468-.066406.703125-.15625 1.042968-.277344l.160157-.058593c.339843-.128907.671875-.285157.988281-.464844.046875-.023437.089844-.050781.132812-.078125.328126-.195312.636719-.414062.925782-.660156.011718-.007813.023437-.015625.035156-.023438l35-30c2.9375-2.519531 3.277344-6.9375.757812-9.871094-2.515624-2.9375-6.933593-3.277343-9.867187-.757812l-23.445313 20.09375v-82.78125c0-3.867188-3.132812-7-7-7-3.867187 0-7 3.132812-7 7v82.78125l-23.445312-20.09375c-2.933594-2.519531-7.351562-2.179688-9.871094.757812-2.515625 2.933594-2.175781 7.351563.761719 9.871094zm0 0")
path(class="cart" fill="#fff" stroke="#000" stroke-width="3" d="m407.414062 133.679688h-312l-3.277343-24.574219c-.007813-.054688-.015625-.109375-.023438-.167969-3.195312-20.703125-21.050781-35.957031-42-35.871094h-42.699219c-3.867187 0-7 3.132813-7 7 0 3.863282 3.132813 7 7 7h42.699219c14.019531-.058594 25.980469 10.128906 28.160157 23.980469l33.792968 253.425781c.007813.054688.015625.113282.023438.167969 3.195312 20.703125 21.050781 35.957031 42 35.875h5.875c2.578125 15.195313 15.742187 26.3125 31.152344 26.3125 15.414062 0 28.578124-11.117187 31.15625-26.3125h58.46875c2.707031 15.863281 16.902343 27.160156 32.96875 26.242187 16.070312-.921874 28.878906-13.765624 29.757812-29.835937s-10.457031-30.234375-26.328125-32.898437c-15.871094-2.667969-31.210937 7.015624-35.632813 22.492187h-60c-3.871093-13.574219-16.273437-22.933594-30.386718-22.933594-14.117188 0-26.519532 9.359375-30.390625 22.933594h-6.640625c-14.019532.058594-25.984375-10.128906-28.164063-23.980469l-10.183593-76.382812h218.40625c18.117187-.007813 34.242187-11.484375 40.179687-28.597656l39.703125-114.578126c.742188-2.140624.402344-4.507812-.910156-6.355468s-3.441406-2.945313-5.707032-2.941406zm-95.523437 243.90625c9.726563 0 17.613281 7.882812 17.613281 17.609374 0 9.726563-7.886718 17.613282-17.613281 17.613282s-17.609375-7.886719-17.609375-17.613282c.011719-9.722656 7.890625-17.597656 17.609375-17.609374zm-120.777344 0c9.726563 0 17.609375 7.882812 17.613281 17.609374 0 9.726563-7.886718 17.613282-17.613281 17.613282-9.726562 0-17.609375-7.886719-17.609375-17.613282.011719-9.722656 7.886719-17.597656 17.609375-17.609374zm169.988281-124.621094c-3.984374 11.480468-14.800781 19.179687-26.953124 19.183594h-220.273438l-16.601562-124.46875h300.300781zm0 0")
//replay btn
button.icon-block__replay.btn(type="button") Replay
//single icon
.icon-block
//icon
.signal-icon.icon
svg(height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink")
path(class="signal signal--sm" fill="#fff" stroke="#000" stroke-width="3" d="m422.586 85.984a42.127 42.127 0 0 0 -22.26-6.96 6 6 0 0 0 -.287 12 30.132 30.132 0 0 1 15.928 4.973 28.881 28.881 0 0 1 12.582 18.974 29.8 29.8 0 0 1 -1.726 16.691 6 6 0 1 0 11.114 4.526 41.772 41.772 0 0 0 2.411-23.4 40.791 40.791 0 0 0 -17.762-26.804z")
path(class="signal signal--md" fill="#fff" stroke="#000" stroke-width="3" d="m444.156 59.57a69 69 0 0 0 -35-11.34 6 6 0 1 0 -.531 11.989 56.984 56.984 0 0 1 28.911 9.361 55.114 55.114 0 0 1 19.464 22.375 56.478 56.478 0 0 1 -1.773 51.231 6 6 0 1 0 10.513 5.785 68.509 68.509 0 0 0 2.108-62.147 67.114 67.114 0 0 0 -23.692-27.254z")
path(class="signal signal--lg" fill="#fff" stroke="#000" stroke-width="3" d="m465.391 33.644a94.837 94.837 0 0 0 -58.084-15.6 6 6 0 1 0 .67 11.98 82.972 82.972 0 0 1 50.794 13.625 80.683 80.683 0 0 1 33.038 44.863 83.017 83.017 0 0 1 -9.1 66.031 6 6 0 1 0 10.244 6.248 95.042 95.042 0 0 0 10.381-75.6 92.691 92.691 0 0 0 -37.943-51.547z")
path(class="signal-body" fill="#fff" stroke="#000" stroke-width="3" d="m341.338 207.37 42.671-53.581a26.106 26.106 0 1 0 -22.871-27.274l-60.646 40.5c-28.212-25.363-56.689-46.771-80.271-60.327-28.208-16.215-46.312-19.72-55.349-10.713l-3.326 3.315a171.935 171.935 0 0 0 0 243.718q3.429 3.418 7.006 6.6l-58.5 89.234h-65.5a39.6 39.6 0 0 0 -39.552 39.552v9.711a6 6 0 0 0 6 6h378.1a6 6 0 0 0 6-6v-9.711a39.6 39.6 0 0 0 -39.55-39.551h-62.212l-38.425-47.843a174.888 174.888 0 0 0 28.863 2.4 172.621 172.621 0 0 0 122.235-50.384l3.322-3.311.009-.009c8.961-8.93 5.941-26.96-8.973-53.586-12.847-22.94-33.8-50.881-59.031-78.74zm45.943-93.6a14.114 14.114 0 1 1 -14.181 14.117 14.163 14.163 0 0 1 14.181-14.114zm-23.581 25.46a26.292 26.292 0 0 0 8.568 10.033l-89.53 112.421q-10.136-9.3-20.244-19.351-11.045-11.013-20.785-21.633zm-190.36-34.755c2.574-2.568 14.084-2.8 40.9 12.616 22.243 12.786 49.1 32.891 75.944 56.808l-56.584 37.79c-40.8-46.165-61.991-84.351-61.991-101.254-.004-2.806.581-4.811 1.735-5.96zm182.212 346.368a27.582 27.582 0 0 1 27.55 27.551v3.711h-366.102v-3.711a27.582 27.582 0 0 1 27.551-27.551h311zm-77.6-12h-153.552l53.433-81.508a171.778 171.778 0 0 0 58.286 29.42zm-107.939-104.331a159.923 159.923 0 0 1 -9.561-216.312c5.826 29.625 41.948 81.178 93.575 132.635 31.849 31.742 64.882 58.6 93.016 75.624q24.1 14.583 39.959 17.656c-63.145 52.723-157.659 49.53-216.989-9.603zm230.858-3.321c-2.176 2.17-7.541 2.316-14.72.4-8.7-2.322-20.08-7.647-32.9-15.4-18.849-11.406-40.026-27.42-61.584-46.455l42.087-52.847c24.053 26.718 43.946 53.311 56.146 75.081 17.523 31.284 11.694 38.502 10.971 39.221z")
//replay btn
button.icon-block__replay.btn(type="button") Replay
//single icon
.icon-block
//icon
.progress-icon.icon
svg(height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink")
path(class="progress-arrow" fill="#fff" stroke="#000" stroke-width="3" d="m163.024 87.4a6 6 0 0 0 6-6v-33.625c80.134 96.113 173.933 168.582 279.042 215.5 15 6.7 30.434 12.952 45.875 18.595a6 6 0 1 0 4.119-11.27c-15.181-5.548-30.355-11.7-45.1-18.282-104.55-46.668-197.788-119.077-277.305-215.318h37.1a6 6 0 0 0 0-12h-49.731c-.07 0-.138.008-.207.011-.117 0-.234.006-.35.017-.093.009-.182.024-.273.036s-.206.027-.308.047-.2.044-.293.068-.185.044-.276.071-.2.065-.3.1-.172.06-.257.094-.2.087-.294.134c-.08.037-.16.073-.239.114-.1.053-.2.112-.294.171-.072.043-.144.084-.214.13-.1.067-.2.14-.294.212-.054.04-.109.075-.162.117-.01.008-.018.018-.028.026-.089.072-.173.151-.257.228-.064.059-.131.114-.192.175s-.093.1-.14.152a5.975 5.975 0 0 0 -.882 1.206l-.019.032c-.053.1-.1.2-.144.3-.037.079-.078.156-.112.237-.017.039-.029.081-.045.121a5.972 5.972 0 0 0 -.348 1.3c-.014.088-.031.176-.04.264s-.009.151-.014.226c-.009.125-.019.251-.019.377v.034 50.4a6 6 0 0 0 6.001 6z")
path(class="progress-diagram" fill="#fff" stroke="#000" stroke-width="3" d="m496 348.02h-105.881v-72.557a6 6 0 0 0 -6-6h-121.08v-82.763a6 6 0 0 0 -6-6h-117.03v-88.044a6 6 0 0 0 -6-6h-114.226a6 6 0 0 0 -6 5.941l-3.783 388.345a6 6 0 0 0 6 6.058h480a6 6 0 0 0 6-6v-126.98a6 6 0 0 0 -6-6zm-117.881-66.557v72.557l-1.542 120.98h-113.538v-193.537zm-127.08-88.763v282.3h-111.03v-282.3zm-225.315-94.044h102.285v376.344h-105.95zm464.276 376.344h-101.423l1.466-114.98h99.957z")
//replay btn
button.icon-block__replay.btn(type="button") Replay
//single icon
.icon-block
//icon
.rocket-icon.icon
svg(height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink")
path(fill="#fff" stroke="#000" stroke-width="3" d="m452.8 19.007a10.8 10.8 0 0 0 -11.663-8.945l-65.18 7.294c-2.961.332-5.893.747-8.8 1.227h-.017c-35.022 5.783-66.014 22.223-87.987 46.864l-77.925 101.575-126.7-17.47a7.99 7.99 0 0 0 -8.466 4.835 7.859 7.859 0 0 0 2.524 9.377l85.26 65.017-38.23 49.83 19.225 14.661-15.741 20.22-.01.012-68.324 87.764a6 6 0 1 0 9.468 7.371l65.75-84.456 108.557 82.782-66.441 85.349a6 6 0 1 0 9.468 7.372l68.326-87.764 16.593-21.314 14.593 11.128 38.24-49.824 78.44 59.815a8.008 8.008 0 0 0 9.749-.041 7.86 7.86 0 0 0 2.453-9.377l-45.93-108.653 72.687-94.706.21-.292c24.568-36.323 34.292-82.09 27.379-128.87zm-79.323 10.753c1.266-.173 2.537-.335 3.814-.478l63.841-7.144 7.3 49.4a189.65 189.65 0 0 1 1.924 21.143c-18.154 5.184-37.308 1.383-53.156-10.7a59.973 59.973 0 0 1 -23.723-52.221zm-285.402 133.774 104.748 14.443-31.672 41.282zm153.838 233.966-108.557-82.786 11.028-14.166 108.556 82.782zm147.087-4.493-66.376-50.616 29-37.791zm34.086-201.22-148.247 193.151-142.376-108.571 155.792-203.094c18.506-20.673 44.045-35.049 73.091-41.373a72.052 72.052 0 0 0 28.577 59.624 73.647 73.647 0 0 0 44.638 15.339 70.149 70.149 0 0 0 15.805-1.813c-1.043 31.669-10.358 61.65-27.282 86.737z")
path(fill="#fff" stroke="#000" stroke-width="3" d="m339.963 153.373c-29.539-22.524-72.093-17.061-94.858 12.18a66.613 66.613 0 0 0 12.307 94.047 68.186 68.186 0 0 0 94.858-12.18 66.613 66.613 0 0 0 -12.307-94.051zm2.838 86.68a56.147 56.147 0 0 1 -78.112 10.009 54.614 54.614 0 0 1 -10.115-77.137 56.15 56.15 0 0 1 78.113-10.01 54.615 54.615 0 0 1 10.113 77.138z")
path(fill="#fff" stroke="#000" stroke-width="3" d="m321.145 177.545a37.1 37.1 0 0 0 -51.616 6.633 36.307 36.307 0 0 0 6.7 51.254 37.1 37.1 0 0 0 51.616-6.633 36.307 36.307 0 0 0 -6.7-51.254zm-2.768 43.882a25.063 25.063 0 0 1 -34.869 4.462 24.306 24.306 0 0 1 -4.508-34.339 25.064 25.064 0 0 1 34.869-4.463 24.306 24.306 0 0 1 4.51 34.34z")
path(class="rocket-smoke" fill="#fff" stroke="#000" stroke-width="3" d="m176.345 448.711a6 6 0 0 0 8.42-1.049l28.035-36.011a6 6 0 1 0 -9.469-7.371l-28.031 36.011a6 6 0 0 0 1.045 8.42z")
path(class="rocket-smoke" fill="#fff" stroke="#000" stroke-width="3" d="m170.972 455.611a6 6 0 0 0 -8.42 1.049l-8.071 10.367a6 6 0 1 0 9.469 7.371l8.071-10.367a6 6 0 0 0 -1.049-8.42z")
path(class="rocket-smoke" fill="#fff" stroke="#000" stroke-width="3" d="m177.8 377.34a6 6 0 0 0 -8.42 1.049l-54.29 69.732a6 6 0 1 0 9.469 7.371l54.288-69.732a6 6 0 0 0 -1.047-8.42z")
path(class="rocket-smoke" fill="#fff" stroke="#000" stroke-width="3" d="m133.236 364.011a5.99 5.99 0 0 0 4.739-2.315l3.469-4.457a6 6 0 1 0 -9.468-7.371l-3.47 4.457a6 6 0 0 0 4.73 9.686z")
path(class="rocket-smoke" fill="#fff" stroke="#000" stroke-width="3" d="m115.958 389.978 2.728-3.5a6 6 0 0 0 -9.469-7.373l-2.728 3.5a6 6 0 0 0 9.469 7.374z")
path(class="rocket-smoke" fill="#fff" stroke="#000" stroke-width="3" d="m97.747 403.6a6 6 0 0 0 -8.42 1.048l-6.059 7.784a6 6 0 1 0 9.468 7.371l6.06-7.784a6 6 0 0 0 -1.049-8.419z")
//replay btn
button.icon-block__replay.btn(type="button") Replay
//single icon
.icon-block
//icon
.chat-icon.icon
svg(xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 591.6 591.6" style="enable-background:new 0 0 591.6 591.6;" xml:space="preserve")
path(fill="#fff" stroke="#000" stroke-width="3" d="M541.008,91.392C508.368,58.752,464.712,40.8,418.2,40.8H173.4c-46.512,0-89.964,17.952-122.808,50.592C17.952,124.236,0,167.688,0,214.2s17.952,89.964,50.592,122.808c30.396,30.192,69.972,47.94,112.608,50.388V540.6c0,3.876,2.244,7.344,5.508,9.18c1.428,0.816,3.06,1.02,4.692,1.02c2.04,0,4.284-0.612,5.916-2.04L401.064,387.6H418.2c46.512,0,89.964-17.952,122.808-50.592c32.64-32.64,50.592-76.296,50.592-122.808S573.648,124.236,541.008,91.392z M418.2,367.2h-20.4c-2.244,0-4.284,0.612-5.916,2.04L183.6,520.608V377.4c0-5.712-4.488-10.2-10.2-10.2c-84.456,0-153-68.544-153-153s68.544-153,153-153h244.8c84.456,0,153,68.544,153,153S502.656,367.2,418.2,367.2z")
path(fill="#fff" stroke="#000" stroke-width="3" d="M178.5,81.6c0-2.856-2.244-5.1-5.1-5.1c-75.888,0-137.7,61.812-137.7,137.7c0,2.856,2.244,5.1,5.1,5.1s5.1-2.244,5.1-5.1c0-70.38,57.12-127.5,127.5-127.5C176.256,86.7,178.5,84.456,178.5,81.6z")
path(class="chat-dot" fill="#fff" stroke="#000" stroke-width="3" d="M153,163.2c-28.152,0-51,22.848-51,51s22.848,51,51,51s51-22.848,51-51S181.152,163.2,153,163.2z M153,244.8c-16.932,0-30.6-13.668-30.6-30.6s13.668-30.6,30.6-30.6s30.6,13.668,30.6,30.6S169.932,244.8,153,244.8z")
path(class="chat-dot" fill="#fff" stroke="#000" stroke-width="3" d="M295.8,163.2c-28.152,0-51,22.848-51,51s22.848,51,51,51s51-22.848,51-51S323.952,163.2,295.8,163.2z M295.8,244.8c-16.932,0-30.6-13.668-30.6-30.6s13.668-30.6,30.6-30.6s30.6,13.668,30.6,30.6S312.732,244.8,295.8,244.8z")
path(class="chat-dot" fill="#fff" stroke="#000" stroke-width="3" d="M438.6,163.2c-28.152,0-51,22.848-51,51s22.848,51,51,51c28.152,0,51-22.848,51-51S466.752,163.2,438.6,163.2zM438.6,244.8c-16.932,0-30.6-13.668-30.6-30.6s13.668-30.6,30.6-30.6s30.6,13.668,30.6,30.6S455.532,244.8,438.6,244.8z")
//replay btn
button.icon-block__replay.btn(type="button") Replay
View Compiled
//mixins
@mixin transition-mix ($property: all, $duration: 0.2s, $timing: linear, $delay: 0s) {
transition-property: $property;
transition-duration: $duration;
transition-timing-function: $timing;
transition-delay: $delay;
}
@mixin position-absolute ($top: null, $left: null, $right: null, $bottom: null) {
position: absolute;
top: $top;
left: $left;
right: $right;
bottom: $bottom;
}
//basic variables
$theme-font-color: #2c2c2c;
//common styles
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font: {
family: 'Fira Sans', sans-serif;
size: 16px;
}
color: $theme-font-color;
a {
color: inherit;
text-decoration: none;
}
}
.btn {
@include transition-mix;
padding: 10px 20px;
display: inline-block;
margin-right: 10px;
background-color: #fff;
border: 1px solid $theme-font-color;
border-radius: 3px;
cursor: pointer;
outline: none;
&:last-child {
margin-right: 0;
}
&:hover,
&.js-active{
color: #fff;
background-color: $theme-font-color;
}
}
//header styles
.header {
max-width: 600px;
margin: 50px auto;
text-align: center;
}
.header__title {
margin-bottom: 30px;
font: {
size: 2.1rem;
}
}
//content styles
.content {
width: 95%;
margin: 0 auto 50px;
}
.content__inner {
display: grid;
grid-template-columns: repeat(5, 100px);
grid-gap: 60px;
justify-content: center;
}
.icon-block {
width: 100px;
text-align: center;
.icon {
width: 100%;
height: 100px;
}
svg {
width: 100%;
height: 100%;
overflow: visible;
}
}
.icon-block__replay {
margin-top: 15px;
}
View Compiled
const cartIcon = '.cart-icon';
const signalIcon = '.signal-icon';
const progressIcon = '.progress-icon';
const rocketIcon = '.rocket-icon';
const chatIcon = '.chat-icon';
//*** ICONS ANIMATIONS
//stroke animation
const strokeAnim = {
strokeDashoffset: {
value: [anime.setDashoffset, 0],
easing: 'easeInOutSine',
duration: 1000,
direction: 'alternate',
}
};
//fill animation
const fillAnim = {
fill: {
value: '#000',
easing: 'linear',
duration: 400,
delay: 1000,
}
};
//common animations
const baseAnims = {
...strokeAnim,
...fillAnim
};
// cart animation
let cartBounceAnimation;
const cartIconAnimation = anime({
targets: `${cartIcon} path`,
...baseAnims,
complete: function() {
cartBounceAnimation = anime({
targets: `${cartIcon} .arrow`,
translateY: [-30, 0],
duration: 700,
easing: 'easeOutElastic',
direction: 'alternate',
loop: true
});
}
});
//signal animation
let signalOpacityAnimation;
const signalIconAnimation = anime({
targets: `${signalIcon} path`,
...baseAnims,
complete: function() {
signalOpacityAnimation = anime({
targets: `${signalIcon} .signal`,
opacity: [0, 1],
duration: 700,
delay: anime.stagger(150),
easing: 'linear',
direction: 'normal',
loop: true
});
}
});
//progress animation
let arrowMoveAnimation;
const progressIconAnimation = anime({
targets: `${progressIcon} path`,
...baseAnims,
complete: function() {
arrowMoveAnimation = anime({
targets: `${progressIcon} .progress-arrow`,
translateY: [120, 0],
translateX: [120, 0],
duration: 1100,
easing: 'easeOutElastic',
direction: 'normal',
loop: true
});
}
});
//rocket animation
let rocketSmokeAnimation;
const rocketIconAnimation = anime({
targets: `${rocketIcon} path`,
...baseAnims,
complete: function() {
rocketSmokeAnimation = anime({
targets: `${rocketIcon} .rocket-smoke`,
translateY: [0, 20],
translateX: [0, -20],
opacity: [1, 0],
duration: 250,
delay: anime.stagger(150),
easing: 'linear',
direction: 'normal',
loop: true
});
}
});
//chat animation
let chatDotsAnimation;
const chatIconAnimation = anime({
targets: `${chatIcon} path`,
...baseAnims,
complete: function() {
chatDotsAnimation = anime({
targets: `${chatIcon} .chat-dot`,
opacity: [1, 0],
duration: 450,
delay: anime.stagger(150),
easing: 'linear',
direction: 'alternate',
loop: true
});
}
});
//*** REPLAYS INIT
//common replay function
const replay = ({initTarget, initValues}, cbPause, cbRestart) => {
anime.set(initTarget, {...initValues});
cbPause.pause();
cbRestart.restart();
}
//cart replay init
const cartReplay = document.querySelector('.cart-icon').nextElementSibling;
cartReplay.addEventListener('click', function() {
replay(
{
initTarget: `${cartIcon} .arrow`,
initValues: {translateY: 0}
},
cartBounceAnimation,
cartIconAnimation
);
});
//signal replay init
const signalReplay = document.querySelector('.signal-icon').nextElementSibling;
signalReplay.addEventListener('click', function() {
replay(
{
initTarget: `${signalIcon} .signal`,
initValues: {opacity: 1}
},
signalOpacityAnimation,
signalIconAnimation
);
});
//progress replay init
const progressReplay = document.querySelector('.progress-icon').nextElementSibling;
progressReplay.addEventListener('click', function() {
replay(
{
initTarget: `${progressIcon} .progress-arrow`,
initValues: {
translateX: 0,
translateY: 0
}
},
arrowMoveAnimation,
progressIconAnimation
);
});
//rocket icon replay init
const rocketReplay = document.querySelector('.rocket-icon').nextElementSibling;
rocketReplay.addEventListener('click', function() {
replay(
{
initTarget: `${rocketIcon} .rocket-smoke`,
initValues: {
translateX: 0,
translateY: 0,
opacity: 1
}
},
rocketSmokeAnimation,
rocketIconAnimation
);
});
//chat icon replay init
const chatReplay = document.querySelector('.chat-icon').nextElementSibling;
chatReplay.addEventListener('click', function() {
replay(
{
initTarget: `${chatIcon} .chat-dot`,
initValues: {opacity: 1}
},
chatDotsAnimation,
chatIconAnimation
);
});
View Compiled
This Pen doesn't use any external CSS resources.