Fixing up transitions on discreteBar chart.

master
Robin Hu 11 years ago
parent 9a9e34bb30
commit acef1926f0

@ -23,7 +23,6 @@ nv.models.discreteBar = function() {
, yRange
, dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
, rectClass = 'discreteBar'
, transitionDuration = 250
;
//============================================================
@ -106,7 +105,7 @@ nv.models.discreteBar = function() {
.style('stroke-opacity', 1e-6)
.style('fill-opacity', 1e-6);
groups.exit()
.transition().duration(transitionDuration)
.transition()
.style('stroke-opacity', 1e-6)
.style('fill-opacity', 1e-6)
.remove();
@ -114,7 +113,7 @@ nv.models.discreteBar = function() {
.attr('class', function(d,i) { return 'nv-group nv-series-' + i })
.classed('hover', function(d) { return d.hover });
groups
.transition().duration(transitionDuration)
.transition()
.style('stroke-opacity', 1)
.style('fill-opacity', .75);
@ -184,10 +183,15 @@ nv.models.discreteBar = function() {
if (showValues) {
barsEnter.append('text')
.attr('text-anchor', 'middle')
;
bars.select('text')
.text(function(d,i) { return valueFormat(getY(d,i)) })
.transition()
.attr('x', x.rangeBand() * .9 / 2)
.attr('y', function(d,i) { return getY(d,i) < 0 ? y(getY(d,i)) - y(0) + 12 : -4 })
.text(function(d,i) { return valueFormat(getY(d,i)) });
;
} else {
bars.selectAll('text').remove();
}
@ -198,9 +202,9 @@ nv.models.discreteBar = function() {
.style('stroke', function(d,i) { return d.color || color(d,i) })
.select('rect')
.attr('class', rectClass)
.transition()
.attr('width', x.rangeBand() * .9 / data.length);
bars.transition()
.duration(transitionDuration)
//.delay(function(d,i) { return i * 1200 / data[0].values.length })
.attr('transform', function(d,i) {
var left = x(getX(d,i)) + x.rangeBand() * .05,
@ -338,12 +342,6 @@ nv.models.discreteBar = function() {
rectClass = _;
return chart;
};
chart.transitionDuration = function(_) {
if (!arguments.length) return transitionDuration;
transitionDuration = _;
return chart;
};
//============================================================

@ -27,6 +27,7 @@ nv.models.discreteBarChart = function() {
, y
, noData = "No Data Available."
, dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'beforeUpdate')
, transitionDuration = 250
;
xAxis
@ -71,7 +72,10 @@ nv.models.discreteBarChart = function() {
- margin.top - margin.bottom;
chart.update = function() { dispatch.beforeUpdate(); container.transition().call(chart); };
chart.update = function() {
dispatch.beforeUpdate();
container.transition().duration(transitionDuration).call(chart);
};
chart.container = this;
@ -141,7 +145,7 @@ nv.models.discreteBarChart = function() {
var barsWrap = g.select('.nv-barsWrap')
.datum(data.filter(function(d) { return !d.disabled }))
d3.transition(barsWrap).call(discretebar);
barsWrap.transition().call(discretebar);
//------------------------------------------------------------
@ -169,7 +173,7 @@ nv.models.discreteBarChart = function() {
g.select('.nv-x.nv-axis')
.attr('transform', 'translate(0,' + (y.range()[0] + ((discretebar.showValues() && y.domain()[0] < 0) ? 16 : 0)) + ')');
//d3.transition(g.select('.nv-x.nv-axis'))
g.select('.nv-x.nv-axis').transition().duration(0)
g.select('.nv-x.nv-axis').transition()
.call(xAxis);
@ -188,7 +192,7 @@ nv.models.discreteBarChart = function() {
.ticks( availableHeight / 36 )
.tickSize( -availableWidth, 0);
d3.transition(g.select('.nv-y.nv-axis'))
g.select('.nv-y.nv-axis').transition()
.call(yAxis);
}
@ -315,10 +319,8 @@ nv.models.discreteBarChart = function() {
};
chart.transitionDuration = function(_) {
if (!arguments.length) return discretebar.transitionDuration();
discretebar.transitionDuration(_);
xAxis.transitionDuration(_);
yAxis.transitionDuration(_);
if (!arguments.length) return transitionDuration;
transitionDuration = _;
return chart;
};

Loading…
Cancel
Save