Javascript d3年滑块启用步骤之间的区域

Javascript d3年滑块启用步骤之间的区域,javascript,html,css,d3.js,visualization,Javascript,Html,Css,D3.js,Visualization,我正在尝试在D3V5中创建一个从2010年到2015年的步进滑块。使用插件d3简单滑块 var parseTime = d3.timeParse("%Y"); a1 = parseTime("2010") a2 = parseTime("2015") var sliderStep = d3 .sliderBottom() .domain([a1,a2]) .width(300) .tickFormat(d3.timeFormat('%Y'))

我正在尝试在D3V5中创建一个从2010年到2015年的步进滑块。使用插件d3简单滑块

  var parseTime = d3.timeParse("%Y");
  a1 = parseTime("2010")
  a2 = parseTime("2015")
  var sliderStep = d3
    .sliderBottom()
    .domain([a1,a2])
    .width(300)
    .tickFormat(d3.timeFormat('%Y'))
    .on('onchange', <stuff>
    });

  var gStep = d3
    .select('div#slider-step')
    .attr("class","slider")
    .append('svg')
    .attr('width', 510)
    .attr('height', 100)
    .append('g')
    .attr('transform', 'translate(30,30)');
不过,显示的滑块似乎启用了步骤之间的区域,年份似乎也在移动。是否有办法只启用台阶上的确切点?提前谢谢


问题在于2012年的闰年。为了克服这种特殊情况,您可以添加以下步骤方法:

.step(1000 * 60 * 60 * 24 * 366)

但这并不能让一切变得完美。如果你检查日期的变化,你会发现。如果你只需要考虑几年,我想,最好将年份数组作为数据,您可以根据场景使用另一个函数更改该数组。

我已尝试添加。step1000*60*60*24*365:这将禁用介于两者之间的区域,但从2013年开始的年份在选中时显示为少一个,即2013年为2012年,2014年为2013年,2015年与2014年相同。d3中没有滑块方法d3.sliderBottom。如果您正在使用插件,如d3 simple slider,请编辑您的问题,向我们展示您正在使用的插件,并提供一个指向插件页面/文档的链接。@GerardoFurtado感谢您指出,我是d3新手,已经添加了信息。啊,这很有效,谢谢!当我看到闰年仅在2012年之后才停留在同一年时,我的脑海中就出现了闰年的想法,但当时我并不欣赏尝试闰年的想法。