javascript - D3js高亮栏一一连续

标签 javascript d3.js transition bar-chart

这是示例 fiddle

下面的代码是创建栏

      svg.selectAll("rect")
   .data(dataset, key)
   .enter()
   .append("rect")
   .attr("x", function(d, i) {
        return xScale(i);
   })
   .attr("y", function(d) {
        return h - yScale(d.value);
   })
   .attr("width", xScale.rangeBand())
   .attr("height", function(d) {
        return yScale(d.value);
   })
   .attr("fill", function(d) {
        return "blue";
   })

    //Tooltip
    .on("mouseover", function(d) {
        d3.select(this).style("fill","red");
    })
    .on("mouseout", function() {
        d3.select(this).style("fill","blue");
    })  ;

鼠标悬停时栏变为红色,鼠标移开时栏变为蓝色,

我希望它连续一个接一个地变成红色,意味着第一个条红色,然后第二个条,然后第三个,向前移动后,前一个条应该恢复其原始颜色,一次只有一个红色条。应该就像当它到达结束时,它应该再次从头开始

最佳答案

结果如下:http://jsfiddle.net/DavidGuan/f07wozud/4/

我添加的代码:

function reRenderColor() {
  svg.selectAll("rect")
      .transition()
      .delay(function(d, i){ return i* 500 })
      .duration(200)
      .style('fill', 'red')
      .transition()
      .delay(function(d, i){ return i* 500 + 400 })
      .duration(200)
      .style('fill', 'blue')
}  

reRenderColor();
setInterval(reRenderColor, svg.selectAll("rect").size() * 500 + 500)  

关于javascript - D3js高亮栏一一连续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36735709/

相关文章:

javascript - 当焦点丢失时有可编辑的保存吗?

javascript - onclick 来自 .setAttribute ('onclick' 、 'imgClick(this)' 的图像)如何获取图像索引

javascript - d3 localStorage 比较数组.filter CoffeeScript ;数组变量不起作用

javascript - 将 SVG 文本裁剪到 D3 TreeMap 中矩形的宽度

ios - UIViewControllerAnimatedTransitioning 每隔一段时间才有效?

animation - d3 js 退出动画无法正常工作

javascript - 如何使用来自另一个模块的类型作为 JSDoc 返回/参数类型

javascript - 通过 Ajax 内联调用 PHP 文件中的操作

javascript - d3 v4 : Tree map is giving NaN for x and y

ios - 代码 : how to change storyboard load animation left to right