2014-02-11 2 views
1
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/d3 переход не работает, когда запускается из обработчика Mouseover/MouseOut

Переход кажется, не следует принимать во внимание, то изменение происходит мгновенно. Чего я здесь, очевидно, не хватает?

ответ

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.

+0

Спасибо, вы спасли меня много времени. – SergiuB

Смежные вопросы