「实战应用」如何用DHTMLX构建自定义JavaScript甘特图(三)
DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的所有需求是最完善的甘特图图表库。当您声称您的产品具有高级定制功能时客户一定会对产品进行严格测试这个规则当然适用于DHTMLX Gantt官方技术团队收到了很多关于如何在JavaScript甘特图组件中实现某些外观定制的请求结合实际的案例我们将在本文中为您展示如何在实践中实现这些定制。在上文中我们介绍了如何为任务分配资源以及任务栏中的任务名称和资源等本文将继续介绍如何高亮显示项目任务和周末等。高亮显示项目的任务和周末当通过DHTMLX构建的JavaScript甘特图管理项目时能够突出显示属于不同项目和周末的任务组是很有用的。让我们从突出显示项目的任务开始。要启用此特性需要应用根据任务坐标绘制的附加层但在此之前请检查任务类型是否为project。gantt.addTaskLayer(function (task) { if (task.type project) {使用getTaskPosition()方法获取项目坐标最上面的坐标是已知的——尺寸对象最上面的参数。const sizes gantt.getTaskPosition(task, task.start_date, task.end_date);将最左边的任务坐标添加到左边数组将最右边的坐标添加到右边数组然后遍历项目的每个子任务并添加这些坐标。另外根据子任务的坐标增加sizes对象中的height参数。const left [sizes.left]; const right [sizes.left sizes.width]; gantt.eachTask(function (child) { const childSizes gantt.getTaskPosition(child, child.start_date, child.end_date); left.push(childSizes.left) right.push(childSizes.left childSizes.width) if (sizes.height childSizes.top childSizes.height) sizes.height childSizes.top childSizes.height - sizes.top }, task.id);在遍历所有任务之后必须对左侧数组进行排序以获得最小值然后将其添加到sizes对象的左侧参数中。sizes.left left.sort((a, b) a - b)[0]接下来对正确的数组进行排序但不要将最右边的值添加到sizes对象的右边参数中。相反从结果值中减去最左边的坐标以获得矩形的宽度。const mostRight right.sort((a, b) a - b).reverse()[0] sizes.width mostRight - sizes.left然后您需要创建一个HTML元素并从sizes对象中获取其坐标。在样式中从项目的颜色参数中指定颜色如果不指定颜色则默认设置为灰色。在突出显示周末时应该应用timeline_cell_class模板。在这里您应该检查数组中是否有包含周末的日期如果有则返回一个自定义类名。const weekends [ new Date(2025, 11, 24), new Date(2025, 11, 25), new Date(2025, 11, 31), new Date(2026, 0, 1), ] gantt.templates.timeline_cell_class function (task, date) { if (weekends.indexOf(date) -1) { return weekend; } };任务顶部的自定义图标最后我们想与大家分享如何在任务顶部显示自定义图标。一个简单的方法是使用addTaskLayer()方法使用此方法您可以检查任务是否具有icon参数该参数将指示任务是否具有自定义图标它是我们添加到演示项目中的自定义任务属性。gantt.addTaskLayer(function (task) { if (task.type project) {之后让我们使用getTaskPosition()方法获取任务的坐标。然后创建一个HTML元素根据icon参数从带有图标的数组中指定图像并设置样式。const sizes gantt.getTaskPosition(task, task.end_date, task.end_date); const img document.createElement(img); img.src icons[task.icon - 1] img.style left: ${sizes.left - 10}px; width: 30px; top: ${sizes.top}px; height: 30px; margin-top: 2px; position: absolute; border-radius: 2px; color: white; opacity: 0.9; z-index:1; pointer-events: none; return img;就是这样按照上面的说明您可以实现我们示例中的关键自定义甘特图特性并将它们添加到您的项目中。

相关新闻

Redline源码解读:从CGPoint扩展到AlignmentGuide可视化

Redline源码解读:从CGPoint扩展到AlignmentGuide可视化

Redline源码解读:从CGPoint扩展到AlignmentGuide可视化 【免费下载链接】Redline Redlines for SwiftUI 项目地址: https://gitcode.com/gh_mirrors/redli/Redline 在SwiftUI开发中,布局调试常常让开发者头疼。Redline作为一款强大的SwiftUI布局调…

2026/7/25 3:37:47 阅读更多 →
如何快速搭建Calculator项目:基于Java 11的完整安装教程 [特殊字符]

如何快速搭建Calculator项目:基于Java 11的完整安装教程 [特殊字符]

如何快速搭建Calculator项目:基于Java 11的完整安装教程 🚀 【免费下载链接】Calculator Calculator app created with Java Swing, It is simple with an easy code to help novices learn how to operate a calculator. 项目地址: https://gitcode.c…

2026/7/25 4:11:11 阅读更多 →
108、RAW域黑电平校正与坏点校正:动态阈值算法、产线标定与自适应修复策略

108、RAW域黑电平校正与坏点校正:动态阈值算法、产线标定与自适应修复策略

108、RAW域黑电平校正与坏点校正:动态阈值算法、产线标定与自适应修复策略 去年在调试某款旗舰手机主摄时,遇到一个诡异的暗光偏色问题——夜景模式下,画面左下角总是泛着一层淡淡的紫红色,像被谁偷偷泼了墨水。ISP团队查了三天,AWB、CCM、LSC都翻了个底朝天,最后发现是…

2026/7/25 5:08:04 阅读更多 →

最新新闻

[AI语音/神经网络Codec] + [高保真零样本克隆与推理延迟痛点] + [Neural Audio Codec 离散 Token 化原理与 Fish-Speech 架构深度拆解]

[AI语音/神经网络Codec] + [高保真零样本克隆与推理延迟痛点] + [Neural Audio Codec 离散 Token 化原理与 Fish-Speech 架构深度拆解]

[AI语音/神经网络Codec] [高保真零样本克隆与推理延迟痛点] [Neural Audio Codec 离散 Token 化原理与 Fish-Speech 架构深度拆解] 导读摘要:随着 2026 年生成式 AI 跨越纯文本交互,迈入全多模态高保真“硅基声音合成/音色克隆”新时代,传统…

2026/7/26 0:52:53 阅读更多 →
GESP2026年3月认证C++八级( 第一部分选择题(8-15))精讲

GESP2026年3月认证C++八级( 第一部分选择题(8-15))精讲

第8题 Floyd还能继续更新吗?答案:B1、题目已经用 Dijkstra 求出了所有点对最短路。现在又把这个 dist 数组拿去执行完整 Floyd。问:执行结束以后,dist 会怎样?A.发生变化B.不会变化C.可能变大D.死循环2、先理解 Floyd …

2026/7/26 0:51:52 阅读更多 →
【AI自动化竞品监控实战指南】:20年技术老兵亲授5大避坑法则与实时预警系统搭建路径

【AI自动化竞品监控实战指南】:20年技术老兵亲授5大避坑法则与实时预警系统搭建路径

更多请点击: https://intelliparadigm.com 第一章:AI自动化竞品监控的本质与战略价值 AI自动化竞品监控并非简单的情报抓取工具,而是企业战略感知系统的神经末梢——它通过多源异构数据的实时采集、语义理解与动态归因,将碎片化的…

2026/7/26 0:51:52 阅读更多 →
多模态AI如何实现影视剧情的深度理解与叙事生成

多模态AI如何实现影视剧情的深度理解与叙事生成

1. 项目概述:当AI学会"看剧"讲故事去年在优化一个视频内容分析系统时,我发现现有方案对影视剧这类复杂场景的理解始终停留在"识别物体"的层面。直到接触到Qwen-VL-Narrator这个项目,才真正见识到多模态大模型如何像人类观…

2026/7/26 0:51:52 阅读更多 →
MATLAB实战(23):雷达脉冲系统仿真:从参数分析到多目标检测可视化

MATLAB实战(23):雷达脉冲系统仿真:从参数分析到多目标检测可视化

引言 脉冲雷达的工作原理在教材里通常以抽象公式呈现:雷达方程、虚警概率、检测概率、Swerling 起伏模型……但要把这些公式连成一个能跑起来、能看见的仿真并不容易。本文基于 AN/MPQ-64 "哨兵"雷达的公开规格,完整实现了一个脉冲雷达系统仿真——从雷达方程推导…

2026/7/26 0:50:52 阅读更多 →
MATLAB实战(22):认知雷达自适应感知仿真

MATLAB实战(22):认知雷达自适应感知仿真

背景 传统雷达多采用固定参数进行信号发射与接收,在复杂环境中适应性有限。城市背景中的杂波、突发性干扰,以及汽车与行人并存的多目标场景,都会使检测性能下降。认知雷达(Cognitive Radar)依据环境反馈实时调整发射功率、信号带宽与驻留时间,将能量与分辨率分配到目标所…

2026/7/26 0:50:52 阅读更多 →

日新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

月新闻