Я пытаюсь анимировать между полной строкой текста и ее сокращением, используя переходы преобразования CSS (показано в фрагменте ниже).
В идеале я хотел бы, чтобы буквы, которые не нужны между полной и сокращенной строкой, масштабировались по горизонтали от 0% до 100% (или наоборот), что у меня работает.
Однако я также хотел бы, чтобы буквы без преобразования сжимались по положению, так как буквы с преобразованием сжимаются по ширине, и, хотя я могу реализовать предыдущую функцию, я не могу заставить ее работать.
Короче говоря, код, который я написал до сих пор, успешно преобразует все буквы, но оставляет некоторые буквы прыгающими рядом друг с другом в момент начала перехода.
#bhead.smaller h1 {
position: fixed;
top: 2vh;
right: 0;
left: 0;
font-size: 3.5vh;
margin: auto;
padding: 0;
text-transform: lowercase;
transition: all 0.5s ease-out;
}
#bhead h1 div {
display: inline-block;
width: auto;
margin: 0;
padding: 0;
transition: all 5s linear;
}
#bhead h1 .del {
display: inline-block;
width: auto;
opacity: 1;
}
#bhead.smaller h1 .del {
transform: scaleX(0);
width: 0;
opacity: 0;
}
#bhead h1 .undel {
display: inline-block;
transform: scaleX(0);
width: 0;
opacity: 0;
}
#bhead.smaller h1 .undel {
transform: scaleX(1);
width: auto;
opacity: 1;
}
button {
position: fixed;
top: 15vh;
}
<body id="bhead">
<h1 id="header" class="middle unselectEase"><div>J</div><div class="del">o</div><div>r</div><div class="del">dan </div><div>Ma</div><div class="del"></div><div>nn</div><div class="undel">.com</div>
</h1>
<button onclick="document.querySelector('#bhead').className = document.querySelector('#bhead').className == 'smaller' ? '' : 'smaller'">Transform</button>
</body>
(Вам может понадобиться расширить фрагмент, чтобы интервал работал.)