Added 'ClearHighlights' dispatch to scatter.

Created preliminary implementation of mousemove event on lineChart.
master
Robin Hu 11 years ago
parent 4038a56c7a
commit c079f3e122

@ -147,9 +147,22 @@ nv.models.lineChart = function() {
gEnter.append('g').attr('class', 'nv-y nv-axis');
gEnter.append('g').attr('class', 'nv-linesWrap');
gEnter.append('g').attr('class', 'nv-legendWrap');
gEnter.append('rect').attr('class', 'nv-mouseMoveLayer');
//------------------------------------------------------------
wrap.select(".nv-mouseMoveLayer")
.attr("width",availableWidth)
.attr("height",availableHeight)
.attr("opacity", 0)
.on("mousemove",function() {
var padding = Math.floor(availableWidth / data[0].values.length);
var pointIndex = Math.floor(x.invert(d3.mouse(this)[0] + padding));
lines.dispatch.clearHighlights();
data.forEach(function(item, i) {
lines.dispatch.highlightPoint(i, pointIndex, true);
});
});
//------------------------------------------------------------
// Legend

@ -34,7 +34,7 @@ nv.models.scatter = function() {
, sizeDomain = null // Override point size domain
, sizeRange = null
, singlePoint = false
, dispatch = d3.dispatch('elementClick', 'elementMouseover', 'elementMouseout', 'highlightPoint')
, dispatch = d3.dispatch('elementClick', 'elementMouseover', 'elementMouseout', 'highlightPoint', 'clearHighlights')
, useVoronoi = true
;
@ -440,6 +440,10 @@ nv.models.scatter = function() {
//============================================================
// Event Handling/Dispatching (out of chart's scope)
//------------------------------------------------------------
dispatch.on('clearHighlights', function() {
d3.selectAll(".nv-chart-" + id + " .nv-point.hover").classed("hover",false);
});
dispatch.on('highlightPoint', function(seriesIndex, pointIndex, isHoverOver) {
if (interactive) {
d3.select(".nv-chart-" + id + " .nv-series-" + seriesIndex + " .nv-point-" + pointIndex)

Loading…
Cancel
Save