<div class="wrapper">
<section class="wide">
<h2>CSS Animation</h2>
<div class="vc-vm-swipe">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 5 25 20" class="vc-vm-arrow"><defs><style>.cls-1{fill:#fff;stroke:#231f20;}</style></defs>
<path class="cls-1" d="M4.24,20.5a1.12,1.12,0,0,1,.49-1L12,13a1.78,1.78,0,0,1,2.33,0,1.44,1.44,0,0,1,0,2.09l-4.5,4H25.19a1.45,1.45,0,1,1,0,2.89H9.78l4.5,4a1.38,1.38,0,0,1,0,2.09,2,2,0,0,1-2.33,0L4.73,21.66a1.56,1.56,0,0,1-.49-1.16Z" transform="translate(-3.49 -5.44)"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="18 -1 40 56" class="vc-vm-hand vc-vm-hand-animated"><defs><style>.cls-1{fill:#fff;stroke:#231f20;}</style></defs><path class="cls-1" d="M58.78,18.62a4,4,0,0,0-3.64-1.09A3.41,3.41,0,0,0,54,18V13.45a4,4,0,0,0-4-4,3.66,3.66,0,0,0-.81.09A3.41,3.41,0,0,0,48,10V9.45a4,4,0,0,0-4-4,3.66,3.66,0,0,0-.81.09A4.07,4.07,0,0,0,40,9.6V12a4,4,0,0,0-5.47,1.46A3.93,3.93,0,0,0,34,15.6V38.79l-2.74-3.13a5,5,0,0,0-6.86-.61l-.7.56a2.91,2.91,0,0,0-.7,3.84L30.08,51A16.35,16.35,0,0,0,44,59.45a16,16,0,0,0,16-16v-22A4,4,0,0,0,58.78,18.62ZM44,57.45A14.38,14.38,0,0,1,31.8,49.93L24.69,38.37a.93.93,0,0,1,.21-1.2l.7-.56a3,3,0,0,1,4.11.37l4.49,5.13a1,1,0,0,0,1.41.08,1,1,0,0,0,.34-.74V15.6a2.11,2.11,0,0,1,1.58-2.15A2,2,0,0,1,39.9,15a2.42,2.42,0,0,1,.05.47v16a1,1,0,0,0,2,0V9.6a2.11,2.11,0,0,1,1.58-2.15A2,2,0,0,1,45.9,9a2.42,2.42,0,0,1,.05.47v22a1,1,0,0,0,2,0V13.6a2.11,2.11,0,0,1,1.58-2.15A2,2,0,0,1,51.9,13a2.42,2.42,0,0,1,.05.47v18a1,1,0,0,0,2,0V21.6a2.11,2.11,0,0,1,1.58-2.15A2,2,0,0,1,57.9,21a2.42,2.42,0,0,1,.05.47v22A14,14,0,0,1,44,57.45Z" transform="translate(-3.49 -5.44)"/></svg>
</div>
</section>
<section class="wide">
<h2>CSS Transition + JS</h2>
<div class="vc-vm-swipe">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 5 25 20" class="vc-vm-arrow"><defs><style>.cls-1{fill:#fff;stroke:#231f20;}</style></defs>
<path class="cls-1" d="M4.24,20.5a1.12,1.12,0,0,1,.49-1L12,13a1.78,1.78,0,0,1,2.33,0,1.44,1.44,0,0,1,0,2.09l-4.5,4H25.19a1.45,1.45,0,1,1,0,2.89H9.78l4.5,4a1.38,1.38,0,0,1,0,2.09,2,2,0,0,1-2.33,0L4.73,21.66a1.56,1.56,0,0,1-.49-1.16Z" transform="translate(-3.49 -5.44)"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="18 -1 40 56" class="vc-vm-hand" id="transition"><defs><style>.cls-1{fill:#fff;stroke:#231f20;}</style></defs><path class="cls-1" d="M58.78,18.62a4,4,0,0,0-3.64-1.09A3.41,3.41,0,0,0,54,18V13.45a4,4,0,0,0-4-4,3.66,3.66,0,0,0-.81.09A3.41,3.41,0,0,0,48,10V9.45a4,4,0,0,0-4-4,3.66,3.66,0,0,0-.81.09A4.07,4.07,0,0,0,40,9.6V12a4,4,0,0,0-5.47,1.46A3.93,3.93,0,0,0,34,15.6V38.79l-2.74-3.13a5,5,0,0,0-6.86-.61l-.7.56a2.91,2.91,0,0,0-.7,3.84L30.08,51A16.35,16.35,0,0,0,44,59.45a16,16,0,0,0,16-16v-22A4,4,0,0,0,58.78,18.62ZM44,57.45A14.38,14.38,0,0,1,31.8,49.93L24.69,38.37a.93.93,0,0,1,.21-1.2l.7-.56a3,3,0,0,1,4.11.37l4.49,5.13a1,1,0,0,0,1.41.08,1,1,0,0,0,.34-.74V15.6a2.11,2.11,0,0,1,1.58-2.15A2,2,0,0,1,39.9,15a2.42,2.42,0,0,1,.05.47v16a1,1,0,0,0,2,0V9.6a2.11,2.11,0,0,1,1.58-2.15A2,2,0,0,1,45.9,9a2.42,2.42,0,0,1,.05.47v22a1,1,0,0,0,2,0V13.6a2.11,2.11,0,0,1,1.58-2.15A2,2,0,0,1,51.9,13a2.42,2.42,0,0,1,.05.47v18a1,1,0,0,0,2,0V21.6a2.11,2.11,0,0,1,1.58-2.15A2,2,0,0,1,57.9,21a2.42,2.42,0,0,1,.05.47v22A14,14,0,0,1,44,57.45Z" transform="translate(-3.49 -5.44)"/></svg>
</div>
</section>
</div>
.wrapper {display: flex;
background-color: #fff;}
.wrapper div:not([class]) {
width: 200px;
margin-bottom: 30px;
text-align: right;
padding-left: 200px;
box-sizing: content-box;
background-color: lightblue;
}
.vc-vm-hand {
opacity: 1;
/* animation: hand 10s ease-in-out infinite; */
transform:translateX(0) rotate(0deg);
transition: transform 0.4s ease-in;
}
.wide {
flex-basis: 800px;
display: flex;
justify-content: flex-end;
background-color: lightpink;
}
.vc-vm-swipe {
width: 100px;
padding-bottom: 30px;
display: flex;
flex-direction: column;
align-items: flex-end;
background-color: transparent;}
.vc-vm-arrow {
width: 70px;
}
.vc-vm-hand-animated {
animation: hand 10s ease-in infinite;
}
@keyframes hand {
/* замах */
0%, 20% {
transform: translate(-5%, 0) rotate(20deg);
}
/* идет налево и там остается */
5%, 7%, 25%, 27% {
opacity: 1;
transform: translateX(-600%) rotate(-20deg);
}
/* все еще там, но пропадает */
9%, 29% {
transform: translateX(-600%) rotate(-20deg);
opacity: 0;
}
/* возвращается направо невидимкой */
10%, 30% {
opacity: 0;
transform: translate(0, 0) rotate(0);
}
12%, 32% {
/* проявляется справа */
opacity: 1;
}
/* остается справа */
19%, 99% {
transform: translate(0, 0) rotate(0);
}
}
.vc-vm-hand-transition-start {
transform: translate(-5%, 0) rotate(20deg);
}
.vc-vm-hand-transition {
transform: translateX(-600%) rotate(-20deg);
}
.vc-vm-hand-transition2 {
transform: translate(-700%, 2rem) rotate(-40deg);
}
const myElement = document.querySelector(`#transition`);
var timer = window.setInterval(function() {
myElement.classList.add("vc-vm-hand-transition-start");
window.setTimeout(function() {
myElement.addEventListener("transitionend", startTrans());
}, 300);
window.setTimeout(function() {
myElement.addEventListener("transitionend", contTrans);
}, 500);
window.setTimeout(function() {
myElement.addEventListener("transitionend", contTrans2);
}, 1000);
window.setTimeout(function() {
myElement.addEventListener("transitionend", endTrans);
}, 1300);
}, 10000);
function startTrans() {
myElement.classList.remove("vc-vm-hand-transition-start");
myElement.classList.add("vc-vm-hand-transition");
myElement.removeEventListener("transitionend", startTrans);
}
function contTrans() {
myElement.classList.remove("vc-vm-hand-transition");
myElement.classList.add("vc-vm-hand-transition-start");
myElement.removeEventListener("transitionend", contTrans);
}
function contTrans2() {
myElement.classList.remove("vc-vm-hand-transition-start");
myElement.classList.add("vc-vm-hand-transition2");
myElement.removeEventListener("transitionend", contTrans2);
}
function endTrans() {
myElement.classList.remove("vc-vm-hand-transition", "vc-vm-hand-transition2");
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.