【发布时间】:2017-10-24 03:46:30
【问题描述】:
我正在尝试在单击时更新我的文本元素,以便像键入时一样推出。当我单击文本时,它应该从数据数组中提取下一个文本元素并逐个字符打印直到完成,但是,什么也没有发生。虽然没有抛出错误。下面附上代码。
var data = [
"Hello",
"World!",
"What's up?"
];
var i = 0;
var body = d3.select("body");
var element = body.append("svg");
element.append("text")
.data(data)
.text(function(d) {return d})
.attr("x", 150)
.attr("y", 75)
.attr("text-anchor", "middle")
.attr("fill", "white")
.on("click", function() {
d3.select(this).transition()
.duration(5000)
.ease(d3.easeLinear)
.tween("text", function () {
var newText = data[i];
var textLength = newText.length;
return function (t) {
this.textContent = newText.slice(0, Math.round(t * textLength));
};
});
//wrap around function for the data
i = (i + 1) % data.length;
});
【问题讨论】:
标签: javascript d3.js tween