没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:吉炜炜|2025-06-26 14:04:08.470|阅读 9 次
概述:在应对数千个任务构成的大型项目时,DHTMLX Gantt 以其卓越的性能表现和流畅渲染能力广受欢迎。本文将详细讲解如何借助 DHTMLX Gantt 的 API 与原生 JavaScript,为甘特图添加一套可交互的小地图功能,并提供完整的开发指南和示例演示。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
在应对数千个任务构成的大型项目时,DHTMLX Gantt 以其卓越的性能表现和流畅渲染能力广受欢迎。然而,在实际使用中,终端用户往往需要快速定位到时间线中的特定位置,这在面对庞杂任务结构时尤为困难。为此,DHTMLX 提供了一个实用的解决方案——迷你地图(Mini Map),帮助用户轻松导航、快速定位。
本文将详细讲解如何借助 DHTMLX Gantt 的 API 与原生 JavaScript,为甘特图添加一套可交互的小地图功能,并提供完整的开发指南和示例演示。
在管理大型项目时,甘特图往往具有复杂的任务层级与延展的时间线。此时,如果缺乏高效的导航工具,用户极易迷失在任务丛林中。迷你地图的加入相当于为主图提供一份鸟瞰视图,它可在一个小型面板中呈现整个项目结构,用户只需点击迷你地图中的某一区域,即可快速跳转至主甘特图对应部分,极大地提升了操作便捷性。
实现思路非常清晰:通过创建一个第二个同步的甘特图实例作为“迷你地图”,并配合缩放与视口功能进行导航。
借助toggleMinimap()函数控制迷你地图的开启与销毁:
function toggleMinimap() { if (miniGantt) { miniGantt.destructor(); miniGantt = null; let oldMinimapContainer = document.querySelector("#minimap"); if (oldMinimapContainer) { oldMinimapContainer.parentNode.removeChild(oldMinimapContainer) } } else { addMiniMap() } }
在addMiniMap()中,初始化一个新的甘特图实例,并设置以下配置以适应缩略显示:
function addMiniMap() { miniGantt = Gantt.getGanttInstance(); miniGantt.config.show_task_cells = false; miniGantt.config.readonly = true; miniGantt.config.drag_progress = false; miniGantt.config.show_links = false; miniGantt.config.row_height = 1; miniGantt.config.min_column_width = 2; miniGantt.config.scale_height = 0;
这些配置将最大限度压缩显示区域,并禁止交互编辑,专注导航功能。
为小地图定义简化布局,并启用任务信息提示:
miniGantt.config.layout = { css: "gantt_container", rows: [ { cols: [ { view: "timeline", scrollX: "scrollHor", scrollY: "scrollVer" }, { view: "scrollbar", id: "scrollVer" } ] }, { view: "scrollbar", id: "scrollHor" } ] }; miniGantt.plugins({ tooltip: true });
考虑到小地图需要同时展示完整时间跨度,推荐使用 Zoom-to-Fit 自动缩放策略:
const zoomConfig = { levels: [ { name: "day", scales: [{ unit: "day", step: 1, format: "%d %M" }] }, { name: "week", scales: [{ unit: "week", format: "Week #%W" }] }, { name: "month", scales: [{ unit: "month", step: 1, format: "%M" }] }, { name: "year", scales: [{ unit: "year", step: 1, format: "%Y" }] } ], element: () => miniGantt.$root.querySelector(".gantt_task") };
在加载任务数据后,调用zoomToFit()动态选取合适的缩放级别并应用:
miniGantt.ext.zoom.init(zoomConfig); miniGantt.ext.zoom.setLevel("fit");
const container = document.createElement("div"); container.id = "minimap"; document.body.appendChild(container); miniGantt.init("minimap"); miniGantt.$container.parentNode.draggable = false;
const data = gantt.serialize(); miniGantt.parse(JSON.stringify(data)); const minimalRowSize = miniGantt.$container.offsetHeight / miniGantt.getTaskCount(); miniGantt.config.bar_height = miniGantt.config.row_height = Math.max(Math.floor(minimalRowSize), 1);
视窗显示当前主图可视区域,并允许点击拖动实现跳转:
const minimapDrag = document.createElement("div"); minimapDrag.className = "minimap_drag"; minimapDrag.draggable = false; minimapDrag.style.left = "0px"; minimapDrag.style.width = Math.max((gantt.$task.offsetWidth / gantt.$task.scrollWidth * miniGantt.$task.offsetWidth), 20) + "px"; minimapDrag.style.top = "0px"; minimapDrag.style.height = Math.max((gantt.$task.offsetHeight / gantt.$task_bg.scrollHeight * miniGantt.$task.offsetHeight), 20) + "px"; miniGantt.$container.appendChild(minimapDrag);
鸟瞰全局:快速预览整个项目任务布局;
交互跳转:点击定位目标任务区域;
提升用户体验:减少滚动与查找时间,助力高效项目管理。
迷你地图的加入,不仅大幅提升了 DHTMLX Gantt 在复杂项目场景下的可视化能力,更让用户的操作体验更加流畅和直观。
👉 了解更多 DHTMLX Gantt 产品详情或申请试用,请联系在线客服>>>
关于慧都科技:
慧都科技是一家行业数字化解决方案公司,长期专注于软件、油气与制造行业。公司基于深入的业务理解与管理洞察,以系统化的业务建模驱动技术落地,帮助企业实现智能化运营与长期竞争优势。在软件工程领域,我们提供开发控件、研发管理、代码开发、部署运维等软件开发全链路所需的产品,提供正版授权采购、技术选型、个性化维保等服务,帮助客户实现技术合规、降本增效与风险可控。慧都科技DHTMLX在中国的官方授权代理商,提供DHTMLX系列产品免费试用,咨询,正版销售等于一体的专业化服务。DHTMLX专注于JavaScript和HTML5 UI小部件和库,以帮助开发人员更快地构建功能丰富的、交互式的Web界面。 遵循现代网络开发的标准和做法,DHTMLX提供针对桌面和移动设备定制的优秀Web应用程序框架。
下载|体验更多DHTMLX,请联系在线客服咨询,或拨打产品热线:023-68661681
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
文章转载自:慧都网在应对数千个任务构成的大型项目时,DHTMLX Gantt 以其卓越的性能表现和流畅渲染能力广受欢迎。本文将详细讲解如何借助 DHTMLX Gantt 的 API 与原生 JavaScript,为甘特图添加一套可交互的小地图功能,并提供完整的开发指南和示例演示。
在 Excel 文件中添加图片有助于让您的电子表格更易于理解。在本篇教程中,您将学习如何使用 Java 向 Excel 添加照片。我们将使用简单的 Java 代码示例指导您完成每个步骤。
本文主要介绍如何使用DevExpress WPF Grid控件实现展开和折叠节点,欢迎下载最新版组件体验!
本文将介绍两种方法,讲述如何使用 C# 从 PDF 中提取条码信息:一种是提取 PDF 页面中的嵌入图片后识别条码,另一种是将整个页面渲染为图像再进行识别。这两种方法都支持识别多种 1D 和 2D 条码类型。
一个用于构建跨浏览器Web应用和移动应用的强大JavaScript UI库。
DHTMLX Gantt针对您的解决方案的交互式JavaScript / HTML5甘特图
DHTMLX Scheduler一个类似于Google日历的强大JavaScript日程安排控件。
DHTMLX Spreadsheet高度可定制的JavaScript电子表格组件,可安全、方便地编辑和格式化数据。
DHTMLX DiagramdhtmlxDiagram有很多漂亮的交互式图表,只需几行代码就能生成任何你需要的图表。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号