Tooltips bieten eine Möglichkeit, zusätzliche Informationen anzuzeigen, ohne den Bildschirm mit zu viel Text zu überladen. Standardmäßig erscheinen Tooltips auf Gantt-Aufgaben.
Es ist möglich, Tooltips für jedes Gantt-Element hinzuzufügen, indem Sie die entsprechende API verwenden.
Um Tooltips für Aufgaben zu aktivieren, schalten Sie einfach das tooltip-Plugin mit der gantt.plugins-Methode ein:
<script>
gantt.plugins({ tooltip: true });
gantt.init("gantt_here");
</script>
Sobald die Erweiterung aktiviert ist, werden Tooltips automatisch mit den Standardeinstellungen angezeigt.
Standardmäßig zeigen Tooltips drei Eigenschaften einer Aufgabe an:
Wenn Sie den Tooltip-Text anpassen möchten, verwenden Sie die tooltip_text-Vorlage wie folgt:
gantt.templates.tooltip_text = (start, end, task) =>
`<b>Task:</b> ${task.text}<br/><b>Duration:</b> ${task.duration}`;
Das Tooltip-Objekt ist über gantt.ext.tooltips.tooltip zugänglich. Es bietet Methoden, um die Position, den Inhalt und die Sichtbarkeit des Tooltips zu steuern:
Mehrere Methoden helfen, das Verhalten von Tooltips beim Überfahren von DOM-Elementen zu steuern.
Fügt einen Tooltip mit erweiterter Konfiguration hinzu. Akzeptiert ein Objekt mit folgenden Einstellungen:
Fügt einen Tooltip für ein bestimmtes Gantt-Element hinzu. Dies ist eine einfachere Version von attach(). Es nimmt ein Objekt mit den Tooltip-Details entgegen:
Entfernt einen Tooltip. Erwartet:
Standardmäßig werden Tooltips nur zu Gantt-Aufgaben hinzugefügt, sie können aber auch auf andere Gantt-Elemente angewendet werden, wie z. B. einen Ressourcenmarker:
Zwei Methoden aus der Tooltip-API sind hierfür nützlich:
Zum Beispiel, um Tooltips für Zellen der Zeitskala hinzuzufügen:
const domHelper = gantt.utils.dom;
const pos = domHelper.getRelativeEventPosition(event, gantt.$task_scale);
return gantt.templates.task_date(gantt.dateFromPos(pos.x));
Denken Sie daran, gantt.ext.tooltips.tooltipFor() aufzurufen, nachdem Gantt initialisiert wurde. Zum Beispiel im onGanttReady-Event-Handler:
gantt.attachEvent("onGanttReady", () => {
const tooltips = gantt.ext.tooltips;
tooltips.tooltipFor({
selector: ".gantt_task_link",
html: (event, node) => {
// ...
}
});
gantt.init("gantt_here");
});
Related sample: Custom Tooltips
Oder so:
gantt.init("gantt_here");
gantt.parse(tasks);
gantt.ext.tooltips.tooltipFor({
selector: ".gantt_task_cell",
html: (event, domElement) => {
const id = event.target.parentNode.getAttribute("task_id");
const task = gantt.getTask(id);
return task.text;
}
});
Related sample: Gantt. Custom tooltips for cells
So hinzugefügte Tooltips folgen dem Mauszeiger und berücksichtigen Einstellungen wie tooltip_offset_x, tooltip_offset_y, tooltip_timeout und tooltip_hide_timeout.
Mit dieser Methode können Sie Tooltips mit detaillierterer Konfiguration hinzufügen, um das Verhalten beim Bewegen der Maus besser zu steuern.
Sie können das Standardverhalten des Tooltips ändern, indem Sie den eingebauten Handler entfernen und Ihren eigenen hinzufügen:
// Entfernt den eingebauten Tooltip-Handler von Aufgaben
gantt.ext.tooltips.detach(`[${gantt.config.task_attribute}]:not(.gantt_task_row)`);
gantt.ext.tooltips.tooltipFor({
selector: `.gantt_grid [${gantt.config.task_attribute}]`,
html: (event: MouseEvent) => {
if (gantt.config.touch && !gantt.config.touch_tooltip) {
return;
}
const targetTaskId = gantt.locate(event);
if (gantt.isTaskExists(targetTaskId)) {
const task = gantt.getTask(targetTaskId);
return gantt.templates.tooltip_text(task.start_date, task.end_date, task);
}
return null;
},
global: false
});
Die Zeitspanne für das Anzeigen und Ausblenden von Tooltips kann über die entsprechenden Einstellungen angepasst werden.
Um festzulegen, wie lange (in Millisekunden) es dauert, bis ein Tooltip für eine Aufgabe erscheint, verwenden Sie tooltip_timeout:
gantt.config.tooltip_timeout = 50;
gantt.init("gantt_here");
Um zu steuern, wie lange (in Millisekunden) ein Tooltip sichtbar bleibt, nachdem der Cursor weggegangen ist, verwenden Sie tooltip_hide_timeout:
gantt.config.tooltip_hide_timeout = 5000;
gantt.init("gantt_here");
Sie können die Position des Tooltips anpassen, indem Sie die horizontalen und vertikalen Offsets über diese Konfigurationseigenschaften ändern:
gantt.config.tooltip_offset_x = 30;
gantt.config.tooltip_offset_y = 40;
gantt.init("gantt_here");
Vor Version 6.1 wurden Tooltips nur im Bereich der Zeitleiste angezeigt. Seit v6.1 können Tooltips überall erscheinen und folgen dem Mauszeiger.
Wenn Sie das frühere Verhalten wiederherstellen möchten, verwenden Sie diesen Code vor der Initialisierung von Gantt:
gantt.attachEvent("onGanttReady", () => {
const tooltips = gantt.ext.tooltips;
tooltips.tooltip.setViewport(gantt.$task_data);
});
gantt.init("gantt_here");
gantt.parse(demo_tasks);
Zurück nach oben