Подробности о расширении Zoom можно найти в статье Зумирование
. Этот документ сосредоточен на справочнике API для объекта zoom.
Расширение Zoom поставляется с предустановленными настройками масштаба, что облегчает переключение между ними.
ZoomLevel — это объект, содержащий настройки масштаба. Вот что он включает:
minColumnWidth
и maxColumnWidth
.Этот метод инициализирует расширение с использованием предоставленной конфигурации.
"ctrlKey"
, "altKey"
или "shiftKey"
."wheel"
, null
или undefined
.Вот два примера настройки расширения zoom:
var zoomConfig = {
levels: [
{
name: "day",
scale_height: 27,
min_column_width: 80,
scales: [
{ unit: "day", step: 1, format: "%d %M" }
]
},
{
name: "week",
scale_height: 50,
min_column_width: 50,
scales: [
{ unit: "week", step: 1, format: function (date) {
var dateToStr = gantt.date.date_to_str("%d %M");
var endDate = gantt.date.add(date, 6, "day");
var weekNum = gantt.date.date_to_str("%W")(date);
return "#" + weekNum + ", " + dateToStr(date) + " - " + dateToStr(endDate);
}},
{ unit: "day", step: 1, format: "%j %D" }
]
},
{
name: "month",
scale_height: 50,
min_column_width: 120,
scales: [
{ unit: "month", format: "%F, %Y" },
{ unit: "week", format: "Week #%W" }
]
},
{
name: "quarter",
height: 50,
min_column_width: 90,
scales: [
{ unit: "month", step: 1, format: "%M" },
{
unit: "quarter", step: 1, format: function (date) {
var dateToStr = gantt.date.date_to_str("%M");
var endDate = gantt.date.add(gantt.date.add(date, 3, "month"), -1, "day");
return dateToStr(date) + " - " + dateToStr(endDate);
}
}
]
},
{
name: "year",
scale_height: 50,
min_column_width: 30,
scales: [
{ unit: "year", step: 1, format: "%Y" }
]
}
]
};
gantt.ext.zoom.init(zoomConfig);
// Альтернативно, уровни могут быть определены как массивы шкал
var hourToStr = gantt.date.date_to_str("%H:%i");
var hourRangeFormat = function(step) {
return function(date) {
var intervalEnd = new Date(gantt.date.add(date, step, "hour") - 1);
return hourToStr(date) + " - " + hourToStr(intervalEnd);
};
};
var zoomConfig = {
levels: [
[
{ unit: "month", format: "%M %Y", step: 1 }
],
[
{ unit: "month", format: "%M %Y", step: 1 },
{ unit: "day", format: "%d %M", step: 1 }
],
[
{ unit: "day", format: "%d %M", step: 1 },
{ unit: "hour", format: hourRangeFormat(12), step: 12 }
],
[
{ unit: "day", format: "%d %M", step: 1 },
{ unit: "hour", format: hourRangeFormat(6), step: 6 }
],
[
{ unit: "day", format: "%d %M", step: 1 },
{ unit: "hour", format: "%H:%i", step: 1 }
]
]
};
gantt.ext.zoom.init(zoomConfig);
Этот метод возвращает индекс текущего активного уровня зума.
gantt.ext.zoom.getCurrentLevel();
Переключает на указанный уровень зума.
"year"
) или числом (его позиция в массиве уровней).gantt.ext.zoom.setLevel("year");
// или
gantt.ext.zoom.setLevel(5);
Возвращает все настроенные уровни зума.
gantt.ext.zoom.getLevels();
Результат — массив уровней зума (ZoomLevels[]), как определено в методе init()
.
Увеличивает уровень зума.
gantt.ext.zoom.zoomIn();
Альтернативно, вы можете использовать:
gantt.ext.zoom.setLevel(zoom.getCurrentLevel() - 1);
Уменьшает уровень зума.
gantt.ext.zoom.zoomOut();
Альтернативно, вы можете использовать:
gantt.ext.zoom.setLevel(zoom.getCurrentLevel() + 1);
Добавляет обработчик события.
Удаляет обработчик события.
Вызывает внутреннее событие.
Проверяет, есть ли у события прикрепленные обработчики.
Возвращает true
, если для события есть обработчики.
Это событие срабатывает при изменении уровня зума.
Аргументы: - level - (число | строка) - индекс или имя уровня. - config - (ZoomLevel) - конфигурация уровня.
gantt.ext.zoom.attachEvent("onAfterZoom", function(level, config){
document.querySelector(".gantt_radio[value='" + config.name + "']").checked = true;
});
К началу