「实战应用」如何用DHTMLX构建自定义JavaScript甘特图(一)
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,请注意如果不这样做项目任务中的括号将扩展到任务边界之外并将显示在下一行。由于篇幅有限下期继续讲解请持续关注查看最新产品资讯哦~

相关新闻

AI写作内容“干货感”衰减预警:3个隐藏信号预示读者跳出率飙升,现在修复还来得及!

AI写作内容“干货感”衰减预警:3个隐藏信号预示读者跳出率飙升,现在修复还来得及!

更多请点击: https://codechina.net 第一章:AI写作内容“干货感”衰减预警:3个隐藏信号预示读者跳出率飙升,现在修复还来得及! 当AI生成的文本开始堆砌术语却缺乏可操作路径、案例缺失导致认知断层、段落间逻辑跳跃难…

2026/10/19 13:26:14 阅读更多 →
计算机毕业设计之基于springboot的食品溯源管理系统

计算机毕业设计之基于springboot的食品溯源管理系统

本世纪以来,随着越来越多的人使用网络,互联网得到了极大的发展,各种网络资源呈一个爆发性的增长,越来越多的人通过各种各样的网络工具,例如一些专业百度的官网,查询各种各样的信息,为了适应社会…

2026/10/19 13:26:14 阅读更多 →
我的深度学习之路

我的深度学习之路

学 习 开 篇 声 明: 1)本系列文章是作者在学习深度学习过程中整理的学习笔记,文章中包含了原文的部分内容以及作者的一些心得。具体引用的书籍和资料请看参考文献,具体的版本声明也参考原文献。2)本系列文章仅供学术…

2026/10/19 13:40:36 阅读更多 →

最新新闻

MCP、Skill、Agent、Prompt:AI应用开发四大概念解析与协同实践

MCP、Skill、Agent、Prompt:AI应用开发四大概念解析与协同实践

1. 从一堆混乱概念说起:为什么这四个词总被混着用 刚接触AI应用开发那会儿,我最怕别人问我"你那个Agent和Prompt到底啥区别"。不是答不上来,是每次答完对方眼神里都写着"你确定?"。后来我发现,问题…

2026/10/20 17:20:54 阅读更多 →
柔性作业车间调度多目标优化:NSGA2/NSOOA/NSDBO/NSCOA算法对比与Matlab实现

柔性作业车间调度多目标优化:NSGA2/NSOOA/NSDBO/NSCOA算法对比与Matlab实现

做柔性作业车间调度(FJSP)这些年,我最大的感受是:单目标排程早就满足不了实际生产需求了。订单交付、设备均衡、能耗成本,哪个都不能牺牲,可它们之间又经常打架——压缩完工时间往往意味着某几台设备超负荷…

2026/10/20 17:20:54 阅读更多 →
AndroidKiller实战:APK资源分析与Smali代码解析完整流程

AndroidKiller实战:APK资源分析与Smali代码解析完整流程

很久以前我刚开始接触Android逆向时,第一件事就是找工具。打开搜索引擎,结果五花八门,但真正能把“资源分析”和“代码解析”串成一条完整流程的,AndroidKiller算是我用得最顺手的之一。这篇文章就以AndroidKiller为主线&#xff…

2026/10/20 17:20:54 阅读更多 →
MCP Server 生产级改造:连接、工具描述、错误处理与并发控制

MCP Server 生产级改造:连接、工具描述、错误处理与并发控制

1. 从“能跑”到“敢上线”:MCP Server 的四个断层很多开发者第一次接触 MCP Server 的时候,都会经历一个极其相似的阶段:照着官方文档把示例代码复制下来,本地起一个进程,用客户端连上去,工具列表能拉出来…

2026/10/20 17:20:54 阅读更多 →
墨西哥现金贷市场全景复盘:风控、产品与合规的实战指南

墨西哥现金贷市场全景复盘:风控、产品与合规的实战指南

墨西哥现金贷市场最近几年成了很多出海金融团队绕不开的话题,热钱涌入、流量暴涨、坏账率也跟着坐过山车。市面上关于这片市场的讨论很多,但大多要么停留在宏观叙事,要么只讲某个单一环节的碎片经验。这次我把从市场格局、产品设计到风控落地…

2026/10/20 17:20:54 阅读更多 →
Python+MySQL学生管理系统:可视化界面落地与避坑指南

Python+MySQL学生管理系统:可视化界面落地与避坑指南

简介:这是一套面向Python与数据库初学者的学生管理系统实战项目,采用Python编写客户端逻辑、MySQL负责数据存储,适合正在学习桌面应用开发或需要完成课程设计的学生参考。压缩包共2个文件,包含1个py主程序与1个sql数据库脚本&…

2026/10/20 17:19:49 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →