计算任务的DOM元素在时间线区域内的位置和大小。
task | Task | 任务对象 |
from | Date | 可选,项目的开始日期 |
to | Date | 可选,项目的结束日期 |
object | 一个描述大小和位置的对象 |
// 添加基线显示
gantt.addTaskLayer(function draw_planned(task) {
if (task.planned_start && task.planned_end) {
const sizes = gantt.getTaskPosition(task, task.planned_start, task.planned_end); const el = document.createElement('div');
el.className = 'baseline';
el.style.left = sizes.left + 'px';
el.style.top = sizes.top + 'px';
el.style.width = sizes.width + 'px';
el.style.height= sizes.height + 'px';
return el;
}
return false;
});
此方法返回一个包含以下属性的对象:
如果只提供一个参数,方法将使用task.start_date和task.end_date来计算width和left。如果提供了第二和第三个参数,则使用这些日期。
请注意,该方法始终考虑日期的日期和时间部分,无论时间刻度设置如何。例如,以下两个调用:
gantt.getTaskPosition(task, new Date(2019, 3, 19, 1, 0), new Date(2019, 3, 19, 1, 0));
// 和
gantt.getTaskPosition(task, new Date(2019, 3, 19, 1, 0), new Date(2019, 3, 19, 5, 0));
无论您使用的是hour、day、month还是year刻度,都会返回不同大小的框。
Back to top