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...
Du musst angemeldet sein, um einen Kommentar abzugeben.
JS:
CSS:
HTML:
var width = $('#width')
, und als irgendwo in der Linie 200, die Sie Lesenwidth
man könnte denken, es ist eine Zahl. Erleichtert, weiter zu Lesen in dem code eine variable wie$width
- Kristall-klar, es geht um ein element. 🙂.show
... sollte helfen.sans-serif
Standard-schriftart, als wenn Sie eine benutzerdefinierte schriftart geladen wurde (und vom browser zwischengespeichert) und dann die Berechnung richtig war, für alle anderen Iterationen. Siehe mein edit für ein Update. (und vielen Dank für bemerken!)Wenn Sie neues Wort für Ihren Satz, den Sie sparen können, #was die Breite und dann eine animation mit dieser Breite zu. Wie diese:
, Dies auszuprobieren:- http://jsfiddle.net/adiioo7/c8fFU/13/
Aktualisieren können Sie die Satz-Effekt je nach Ihrer Anforderung. Derzeit ist es mit fadein/fadeout.
JS:-
Habe ich das gleiche problem hatte, und ging mit einem anderen Ansatz, nicht verblassen, aber die Eingabe von: jsfiddle demo
Es im Grunde fügt den neuen text auf der Seite, mit einem schönen caret-und Tippfehler zu machen-und es Aussehen wie jemand zu schreiben.