Warum bekomme ich einen "Fly-in" -Effekt, wenn ich versuche, Schriftgröße in D3 zu überführen? Siehe mein minimal Beispiel:D3 font-size Übergang
<!DOCTYPE html>
<title>Test text transtion</title>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.17/d3.min.js">
</script>
<body>
<button>Toggle</button>
<script>
var svg = d3.select('body').append('svg')
var myLabel = svg.append('text')
.attr('y', 100)
.text('Watch me.');
var toggle = false;
d3.selectAll('button').on('click', function() {
toggle = !toggle;
myLabel.transition()
.style('font-size', toggle ? '2em' : '1em');
});
</script>
</body>
die offensichtlich nicht die gewünschte Wirkung ist. Ich möchte nur, dass der Text ohne viel Fanfare an Ort und Stelle wächst oder schrumpft. In another thread definiert jemand anderes ein benutzerdefiniertes Tween. Bedeutet das, dass es keinen leichteren Weg gibt? Ich wäre sehr überrascht, weil dies ein alltäglicher Effekt ist und der eingebaute Interpolator die Deckkraft und das Schriftgewicht gut verarbeitet.
Auch wenn ich ein benutzerdefiniertes Tween definiere, bedeutet das, dass die anderen eingebauten Übergänge, die ich aktuell habe (Opazität usw.), in die Warteschlange gestellt werden müssen, da nur ein Übergang zu einem bestimmten Zeitpunkt aktiv sein kann?
@RobertLongson Okay, ich bearbeitet die Frage als Antwort auf Ihren Kommentar. – bongbang