dhtmlx gantt实现所有重叠任务的重叠部分透明
时间: 2023-08-11 13:38:40 浏览: 226
dhtmlxgantt:dhtmlx Gantt 3.1 在 Ruby On Rails 4.1 中的实现
要实现所有重叠任务的重叠部分透明,你可以使用 dhtmlx gantt 中的任务样式(task_class)属性和 gantt.templates.task_class 函数。
首先,你需要为重叠任务的重叠部分定义一个特殊的 CSS 类,比如 "gantt_task_overlapping"。然后,你可以使用 gantt.templates.task_class 函数来动态地为任务设置样式。
下面是一个示例代码:
```javascript
// 定义一个 CSS 类,用于表示重叠任务的重叠部分
.gantt_task_overlapping .gantt_task_content {
background-color: rgba(255, 0, 0, 0.2);
}
// 在 gantt.templates.task_class 函数中为任务设置样式
gantt.templates.task_class = function(start, end, task) {
// 获取与当前任务重叠的任务
var overlaps = gantt.getTaskByTime(task.start_date, task.end_date);
// 如果有重叠的任务,则为当前任务添加一个特殊的 CSS 类
if (overlaps.length > 1) {
return "gantt_task_overlapping";
}
};
```
以上代码中,我们首先定义了一个 CSS 类 ".gantt_task_overlapping",用于表示重叠任务的重叠部分。然后,在 gantt.templates.task_class 函数中,我们使用 gantt.getTaskByTime 函数获取与当前任务重叠的任务,如果有重叠的任务,则为当前任务添加一个特殊的 CSS 类 "gantt_task_overlapping",从而使其在重叠部分透明。
注意,以上示例代码仅供参考,具体实现方式可能需要根据你的实际需求进行调整。同时,由于需要通过 JavaScript 动态地为任务设置样式,因此在性能方面可能会有些影响,你需要根据实际情况进行优化。
阅读全文