我正在处理一个按钮悬停效果,当你悬停时,每个字符都会翻转。这个效果几乎完美,但不知何故它去掉了单词之间的空格,所以按钮现在显示为'Thisisatext'而不是'This is a text'。我尝试了很多方法,但似乎找不到正确的解决方案:
演示:
https://codepen.io/pixelarchitect/pen/mdQXjgx
SCSS:
.btn-text {
transform: translateY(var(--y)) translateZ(0);
transition: transform 0.3s ease;
div {
display: flex;
overflow: hidden;
text-shadow: 0 1rem 0 white;
span {
display: block;
backface-visibility: hidden;
transition: transform 0.25s ease;
transform: translateY(var(--m)) translateZ(0);
@for $i from 1 through 12 {
&:nth-child(#{$i}) {
transition-delay: $i * 0.05s;
}
}
}
}
&:hover {
span {
--m: calc(1rem * -1);
}
}
}
JS:
document.querySelectorAll('.btn-text').forEach(button => {
const words = button.textContent.trim().split(' ');
button.innerHTML = '<div>' + words.map(word => '<span>' + word.split('').join('</span><span>') + '</span>').join(' ') + '</div>';
});