有没有办法将过渡应用于 D3 中格式化为货币的数字
Is there a way to apply transitions to numbers formated as currency in D3?
我想在 D3 中做一个类似于这样的计数器转换效果:http://jsfiddle.net/c5YVX/8/
使用格式化为货币的值(应用格式)是否可以达到相同的效果?如果是这样,如何?
var start_val = 0,
duration = 5000,
end_val = [0.06, 14, 1.33333, -232332312.00, 99999];
var qSVG = d3.select("body").append("svg").attr("width", 200).attr("height", 200);
qSVG.selectAll(".txt")
.data(end_val)
.enter()
.append("text")
.text(start_val)
.attr("class", "txt")
.attr("x", 10)
.attr("y", function(d, i) {
return 50 + i * 30
})
.transition()
.duration(3000)
.tween("text", function(d) {
var i = d3.interpolate(this.textContent, d),
prec = (d + "").split("."),
round = (prec.length > 1) ? Math.pow(10, prec[1].length) : 1;
return function(t) {
this.textContent = Math.round(i(t) * round) / round;
};
});
return function(t) {
this.textContent = '$' + (Math.round(i(t) * round) / round).toFixed(2).replace(/'B(?=('d{3})+(?!'d))/g, ",");
};
逗号的正则表达式取自此处。
我可能来不及参加聚会,但这对我来说就像魅力一样。
.tween('text', function() {
//Reformat the textContent to a integer value;
var content = this.textContent == '' ? 0 : parseInt(this.textContent.replace('$', '').replace(',', ''));
var i = d3.interpolate(content, d.ccCount);
return function(t) {
this.textContent = '$' + d3.format(",")(Math.round(i(t)));
};
});
相关文章:
- jQuery中是否内置了任何字符串格式化函数
- 货币代码为欧元-金额的格式不应包含小数
- 将字符串转换为格式化日期
- 将数字四舍五入到小数点后两位,以设置货币格式
- Highcharts-如何在自定义格式化程序中获得默认的y轴标签格式化程序
- 用Javascript重新格式化复杂文本日期字符串的更好方法
- 在HTML画布上格式化文本
- 格式化货币无效
- Java脚本插件,用于将数字转换为特定于区域性的货币格式,并将具有特定货币格式的非格式化数字转换为普通数字
- 图表.js 2.0 使用货币和千位分隔符格式化 Y 轴
- jQuery 表排序器对格式化货币进行排序
- 使用单个函数进行货币验证和格式化
- 如何仅检索货币符号而不从 angularjs 货币过滤器格式化价格表达式
- 如何在格式化货币时删除JavaScript中的最后一个逗号
- 用负数格式化货币
- 在输入字段中格式化货币和百分比
- 如何正确使用“x.j .”用于格式化货币的库
- 客户端javascript格式化数字(货币)
- 质量 - 格式化货币的答案框,带有逗号和美分
- 车把功能,用javascript格式化货币