#javascript #html #css
#javascript #HTML #css — код
Вопрос:
У нас есть простой эффект биения с использованием ключевых кадров CSS, и он работает с Start
и Stop
функционирует:
function Start() {
const original = document.getElementById('original');
original.classList.add("beaton-short");
}
function Stop() {
const original = document.getElementById('original');
original.classList.remove("beaton-short");
original.classList.add("beatoff");
}
setTimeout(() => {
Start();
setTimeout(() => Stop(), 5000);
},3500);
#original {
position: relative;
display:inline-block;
transition: opacity 1s ease-in-out;
font-size: 3vw;
}
.beaton-short {
-webkit-animation: beaton-short 1.5s ease-in-out infinite both;
animation: beaton-short 1.5s ease-in-out infinite both;
}
@keyframes beaton-short {
0% {
-webkit-transform: scale(1);
transform: scale(1);
}
50% {
-webkit-transform: scale(0.97);
transform: scale(0.97);
}
100% {
-webkit-transform: scale(1);
transform: scale(1);
}
}
.beatoff {
/* animation-iteration-count: 1;*/
animation: beatoff 0.2s ease-out;
animation-fill-mode: forwards ;
}
@keyframes beatoff {
100% { transform: scale(1) }
}
<div class="label-container">
<span id="original"> This text should stop beating smoothly not with a jerking movment </span>
</div>
Как вы видите, в некоторых случаях, когда мы вызываем Stop
, биение анимации останавливается с резким движением к его первоначальному масштабу.
Есть ли какое-нибудь решение, чтобы плавно анимировать биение обратно в нормальное состояние без прыжков?
Комментарии:
1.
cubic-bezier
developer.mozilla.org/en-US/docs/Web/CSS/…2. cubic-bezier.com/#.17 ,.67,.83,.67
3. речь идет не об ослаблении … пожалуйста, посмотрите на движение прыжка при остановке…