У меня есть древовидная карта, которую я создал.Теперь я пытаюсь заставить зависание работать правильно.Я хотел бы, чтобы текст для каждого treemap.leaf появлялся только тогда, когда пользователь наводит курсор на этот конкретный лист.
Я пытался следовать этому примеру, но безрезультатно http://mbostock.github.com/protovis/docs/interaction.html
У меня есть следующий код:
var json = {
"sectors":{
"electronics": { "Sony": 85, "AMD": 70, "Techtronics": 20, "Apple": 220, "Microsoft": 340},
"automotive": {"Chevy": 43, "Audi":120, "BMW": 200}},
"ids":{"Sony":72833,"AMD":582926,"Techtronics":839261, "Apple":822463, "Microsoft":242512, "Chevy":627363, "Audi":524362,"BMW":25143}
};
var tree = json.sectors;
var ids = json.ids;
var nodes = pv.dom(tree).root("tree").nodes();
color = pv.Colors.category10().by(function(d){return d.parentNode.nodeName});
var vis = new pv.Panel()
.width(400)
.height(400)
.canvas("test");
var treemap = vis.add(pv.Layout.Treemap)
.nodes(nodes)
.round(true);
treemap.leaf.add(pv.Panel)
.def("active", false)
.fillStyle(function(d) d.active ? "lightcoral" : color(d))
.strokeStyle("#fff")
.lineWidth(1)
.antialias(false)
.cursor("pointer")
.event("mouseover", function(d) { return this.active(true)});
treemap.label.add(pv.Label)
.visible(function() {return this.parent.children[0].active()})
.textStyle(function(d) {return pv.rgb(0, 0, 0, 1)});
vis.render();