我的问题可能措辞不佳,欢迎您对其进行编辑。
我的问题很简单。我正在使用 d3 以纯 HTML 格式制作时间线。时间线项目(这里的文章)都有一个固定的高度(比如说 100 像素),但我需要它们不要像这样重叠:
这里有 4 篇文章,如您所见,它不可读。我知道问题是什么,但我不知道如何解决它。这是我的代码:
height = data.length * (articleHeight + margin * 2)
timeScale
.range([height, 0])
.domain(d3.extent(data, (d) -> timeFormat.parse(d.date)))
div = selection.selectAll(".article").data(data)
div.enter().append("div")
.attr("class", "article")
.html(divHTML)
.style("top", "0")
div.transition().duration(2000)
.style("top", (d) -> d3.round(timeScale(timeFormat.parse(d.date))) + "px")
我计算高度的方式很糟糕。我研究过蜱虫,但那是为了生成轴,对吗?我尝试添加 1 天或 3 天的刻度,但它不会改变任何事情(不足为奇)。
CSV以防万一:
date,title,excerpt
2012-08-13,Most recent article,loremasdjf asdflkasfdlaksjdflasdf kjlasdhflkj asdflkja sdklfjhaskdljhfaskdljhfaskldjhf alksjhdf kaljsd fkljas dfkljash dkfaslkdfj
2012-08-4,Second Most recent article,loremasdjf asdflkasfdlaksjdflasdf kjlasdhflkj asdflkja sdklfjhaskdljhfaskdljhfaskldjhf alksjhdf kaljsd fkljas dfkljash dkfaslkdfj
2012-07-15,"July article, bro",loremasdjf asdflkasfdlaksjdflasdf kjlasdhflkj asdflkja sdklfjhaskdljhfaskdljhfaskldjhf alksjhdf kaljsd fkljas dfkljash dkfaslkdfj
2012-01-16,First article of 2012,loremasdjf asdflkasfdlaksjdflasdf kjlasdhflkj asdflkja sdklfjhaskdljhfaskdljhfaskldjhf alksjhdf kaljsd fkljas dfkljash dkfaslkdfj
编辑:每天可以有不止一篇文章。