从mouseover / mouseout处理程序触发时,d3转换不起作用

时间:2014-02-11 13:33:23

标签: d3.js

d3.select('svg')
    .append('rect')
    .attr('width', 50)
    .attr('height', 50)
    .style('fill', '#BFDEFF')
    .on('mouseover', function () {
        d3.select(this).transition().style('fill', '2B24FF');
    })
    .on('mouseout', function () {
        d3.select(this).transition().style('fill', 'BFDEFF');
    });

http://jsfiddle.net/g63hw/1/

过渡似乎没有被考虑在内,变化立即发生。我在这里明显缺少什么?

1 个答案:

答案 0 :(得分:1)

您使用两种不同类型的字符串来指定颜色(使用和不使用#)。 D3不知道如何在这些不同类型之间进行插值。如果您使用相同的工作:

.style('fill', '#BFDEFF')
.on('mouseover', function () {
    d3.select(this).transition().style('fill', '#2B24FF');
})
.on('mouseout', function () {
    d3.select(this).transition().style('fill', '#BFDEFF');
});

完整示例here