Animate-changing Wörter Breite

Ich habe einen Satz, wo ich fade-in einem Wort und ersetzen Sie es mit einem anderen aus einem array. Jedoch, da die Worte alle variieren in der Länge, der Satz Breite abrupt ändert und es führt zu einem abgehackten übergang.

Wie kann ich das animieren der Breite ändern? Ich habe versucht, das hinzufügen eines übergangs zu dem container des Satzes in der css, aber das hat nicht funktioniert. Ich wandte den übergang so 1.5s all linear, so sollte es sein, das animieren der Breite, wie alles andere auch, wenn es eine Veränderung. Irgendwelche Ideen?

JS:

$(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);

});

CSS:

#sentence {
  transition: 1.5s all linear;
}

#what {
  font-style: italic;
  text-decoration: underline;
  color: red;
}

HTML:

<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>

EDIT: Sorry, wenn ich unklar war, ich möchte nur das "fade-out" das Wort, nicht der ganze Satz. Ich versuche zu animieren, die Breite zu passen, das neue Wort. Ich will nicht zu ändern Sie/fügen Sie alle Elemente, einfach zu lösen mit den aktuellen tags im Ort.

  • Css-Animationen nicht animieren, nicht deklarierten Wert... Wie auto width auto-Breite... Nur wenn es auf genauen Wert... Wie, wenn Sie hatte 100 und und ändern Sie diesen Wert, es wird Veränderungen animieren
  • So kann man es machen. Legen Sie die Breite der vorhandenen word-Skript. Dann, bevor Sie es ändern Messen Sie die neuen word-Breite (es gibt viele verschiedene Möglichkeiten dafür) und legen Sie es mit der Deckkraft...
Schreibe einen Kommentar