甘特图(Gantt chart)是一种条形图,用于展示项目进度、任务分配和时间规划。在甘特图中,Y轴通常表示任务或活动,而X轴表示时间。当您提到在甘特图高度图中单击Y轴标签时选择或突出显示X轴边框,这通常涉及到交互式图表的设计和实现。
要在甘特图中实现单击Y轴标签时选择或突出显示X轴边框,可以使用JavaScript库(如D3.js、Highcharts、Chart.js等)来实现交互功能。以下是一个使用D3.js的简单示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Interactive Gantt Chart</title>
<script src="https://d3js.org/d3.v7.min.js"></script>
<style>
.highlight {
stroke: red;
stroke-width: 2;
}
</style>
</head>
<body>
<svg width="800" height="400"></svg>
<script>
const svg = d3.select("svg");
const width = +svg.attr("width");
const height = +svg.attr("height");
const data = [
{ task: "Task 1", start: 1, end: 5 },
{ task: "Task 2", start: 6, end: 10 },
{ task: "Task 3", start: 11, end: 15 }
];
const xScale = d3.scaleLinear().domain([0, 15]).range([50, width - 50]);
const yScale = d3.scaleBand().domain(data.map(d => d.task)).range([50, height - 50]).padding(0.1);
const xAxis = d3.axisBottom(xScale);
const yAxis = d3.axisLeft(yScale);
svg.append("g").attr("transform", `translate(0, ${height - 50})`).call(xAxis);
svg.append("g").attr("transform", "translate(50, 0)").call(yAxis);
const bars = svg.selectAll(".bar")
.data(data)
.enter()
.append("rect")
.attr("class", "bar")
.attr("x", d => xScale(d.start))
.attr("y", d => yScale(d.task))
.attr("width", d => xScale(d.end) - xScale(d.start))
.attr("height", yScale.bandwidth());
bars.on("click", function(event, d) {
d3.select(this).classed("highlight", true);
svg.selectAll(".x-axis line").classed("highlight", false);
svg.selectAll(".x-axis text").classed("highlight", false);
svg.select(".x-axis").selectAll("line").filter(() => xScale(d.start) <= 50 && xScale(d.end) >= width - 50).classed("highlight", true);
});
</script>
</body>
</html>
click
事件)实现交互功能。通过以上步骤和示例代码,您可以在甘特图中实现单击Y轴标签时选择或突出显示X轴边框的功能。
领取专属 10元无门槛券
手把手带您无忧上云