Animuj zmianę szerokości słów
Mam zdanie, w którym zanikam jednym słowem i zastępuję je innym z tablicy. Jednakże, ponieważ wszystkie słowa różnią się długością, szerokość zdania gwałtownie się zmienia i powoduje niepewne przejście.
Jak mogę animować zmianę szerokości? Próbowałem dodać przejście do kontenera zdania w css, ale to nie zadziałało. Zastosowałem przejście jako1.5s all linear
, więc powinien animować szerokość, jak również wszystko inne, gdy tylko nastąpi zmiana. Jakieś pomysły?
$(function() {
var hello = ['dynamic', 'a', 'aklsjdlfajklsdlkf', 'asdf'];
var used = ['dynamic'];
var greeting = $('#what');
var item;
function hey() {
item = hello[Math.floor(Math.random() * hello.length)];
if (hello.length != used.length) {
while (jQuery.inArray(item, used) != -1) {
item = hello[Math.floor(Math.random() * hello.length)];
}
used.push(item);
} else {
used.length = 0;
item = hello[Math.floor(Math.random() * hello.length)];
used.push(item);
}
greeting.html(item);
greeting.animate({
"opacity": "1"
}, 1500);
}
window.setInterval(function() {
greeting.animate({
"opacity": "0"
}, 1500);
setTimeout(hey, 1500)
}, 5000);
});
#sentence {
transition: 1.5s all linear;
}
#what {
font-style: italic;
text-decoration: underline;
color: red;
}
<p id="sentence">
This is a sentence that has <span id="what">dynamic</span> text that alters width.
</p>
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
EDYCJA: Przepraszam, gdybym był niejasny, chcę tylko wygasić słowo, a nie całe zdanie. Próbuję animować szerokość, aby pasowała do nowego słowa. Nie chcę zmieniać / dodawać żadnych elementów, wystarczy rozwiązać z bieżącymi tagami na miejscu.