NZSM NEWS DESK · 商丘建筑用工观察

「实战应用」如何用DHTMLX构建自定义JavaScript甘特图(一)

发布时间:2026/10/8 3:11:47 来源:NZSM 编辑部 商丘 · 八区县
本文配图 · 由资讯系统配图生成
DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的所有需求是最完善的甘特图图表库。当您声称您的产品具有高级定制功能时客户一定会对产品进行严格测试这个规则当然适用于DHTMLX Gantt官方技术团队收到了很多关于如何在JavaScript甘特图组件中实现某些外观定制的请求结合实际的案例我们将在本文中为您展示如何在实践中实现这些定制。用例带有自定义项目任务、资源、图标等的JavaScript甘特图DHTMLX Gantt附带了一个全面的API使您能够根据自己的喜好调整JavaScript组件的默认视图并根据时间轴调整任何HTML元素如下面的例子所示这个JavaScript甘特图包含许多自定义的DHTMLX Gantt在这里我们更改了项目任务的外观在网格和时间轴中指定了资源增加了在任务栏中显示任务名称和资源图像的功能突出显示了属于特定项目的周末和常规任务并在任务顶部放置了自定义图标。这样的自定义将使最终用户更容易管理工作流并跟踪资源分布让我们为您提供有关如何将这些特性添加到甘特项目中的更多细节。带有自定义括号的项目任务栏在甘特图中用特殊括号(三角形)显示项目可能很有用括号(三角形)指示项目的开始和结束日期。默认情况下DHTMLX Gantt将所有任务(包括项目)显示为矩形并且没有这样的内置功能来强调项目任务中的时间框架。但是DHTMLX Gantt丰富API允许您将这些元素添加到web项目中。例如它可以通过gantt.config.type_renderers完成使用此配置您可以完全重新定义任务的外观。这个选项提供了大量的定制机会但也带来了一些不便。问题是当创建自定义元素时您必须手动添加具有特定类和属性的html元素或者为某些现有的甘特图功能如添加依赖项或进度条的处理程序添加事件处理程序否则它们将无法工作。不过别担心还有另外两种方法可以解决这个问题。第一个是使用一个额外的层允许在甘特图时间轴上显示任何HTML元素。添加自定义括号的另一种更方便的方法是应用CSS可以使用::before和::after伪元素。它们将有以下常见的样式.gantt_project::before, .gantt_project::after { content: ; position: absolute; top: 100%; background-color: transparent; border-style: solid; }自定义括号是用border属性绘制的但您需要在样式规则中添加border-width参数.gantt_project::before { left: -1px; border-width: 0px 0px var(--gantt-bracket-height) var(--gantt-bracket-width); } .gantt_project::after { right: 0px; border-width: 0px var(--gantt-bracket-width) var(--gantt-bracket-height) 0px; }由于每个项目都有不同的颜色因此您需要根据项目颜色生成样式。为此迭代每个任务看看它是否是一个项目并具有颜色参数。如果是这样您应该给::before和::after伪元素添加样式类的名称将是以下组合: task task ID 。const dynamicStyle document.createElement(style); gantt.eachTask(function (task) { if (task.type gantt.config.types.project task.color) { dynamicStyle.innerHTML .task_${task.id}.gantt_project::before{ border-color: transparent transparent transparent ${task.color}; } .task_${task.id}.gantt_project::after { border-color: transparent ${task.color} transparent transparent; } ; } }) document.body.appendChild(dynamicStyle);还需要应用task_class模板来返回自定义类其中需要检查任务类型。如果它是一个项目类型将classic_project添加到变量中。另外检查任务是否具有color属性如果具有则向变量添加task 任务ID。之后您应该返回一个包含所有自定义类名的变量。gantt.templates.task_class function (start, end, task) { if (task.type gantt.config.types.project) { let css classic_project; if (task.color) { css task_${task.id}; } return css; } }要使一切顺利进行还有一个条件它是项目元素的高度。默认情况下任务栏可以拉伸到几乎整个可用行的高度这意味着您需要降低任务栏的高度以显示项目栏中的角您可以使用应该为项目指定的bar_height参数来做到这一点。row_height: 40, bar_height: 20,请注意如果不这样做项目任务中的括号将扩展到任务边界之外并将显示在下一行。由于篇幅有限下期继续讲解请持续关注查看最新产品资讯哦~

以上内容为编辑部整理,涉及政策与考情的部分,以官方发布为准。有拿不准的地方,报考咨询随时问。

CERTIFIED

编辑说明

本文由 NZSM 编辑部根据公开信息与项目走访整理,不是官方文件原文,行文尽量用大白话。

资料来源

行业公开通知、商丘属地项目现场走访、学员与用工单位反馈,三方凑在一起核对过。

免责声明

涉及政策、考情的内容仅供参考,具体以官方发布为准,办理前请先核对原文。

转载合作

需要转载或谈合作,发邮件到 809451989@qq.com,注明出处,咱们好商量。

咨询服务办公室接待场景
本文整理 · NZSM 编辑部

几个常年跑商丘工地的人

我们蹲过商丘不少项目的班前会,也帮学员办过报名、领过证。持证报考、用工行情这些事,能说人话的就不拽条文,写下来给同样在工地上忙的您看。

电话 18236992212 工作日 8:30–18:00 服务睢阳 · 梁园 · 永城等八区县
了解编辑部 →

PATH · 从备考到上岗

文章里说到的这件事,落到个人身上就四步

第一步
1

对条件

学历、工作年限、年龄先对照一遍,缺材料早补,别到报名才发现。

第二步
2

约考试

盯紧当次通知,选最近的考期,科目大纲先过一遍心里有数。

第三步
3

拿证备案

成绩出来后按流程领证,上岗前把备案材料交到项目上。

第四步
4

持证上岗

证带在身上、台账挂在工地,岗位核验才不会卡壳。

CANN/GE ACL数据集缓冲区添加函数 CANN/GE ACL数据集缓冲区添加函数 aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te… 用ffmpeg高效批量调整图片尺寸的实战指南 用ffmpeg高效批量调整图片尺寸的实战指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu… RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup… Java Integer缓存揭秘:128陷阱原理、避坑与面试全解 Java Integer缓存揭秘:128陷阱原理、避坑与面试全解 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

看完这篇,想接着问一句?

电话 18236992212 · 邮箱 809451989@qq.com,报考条件、岗位安排、证书备案,都可以直接问。