提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:龚雪|2024-03-06 10:18:00.797|阅读 67 次
概述:本文将主要介绍如何用DHTMLX构建自定义JavaScript甘特图,欢迎下载最新版组件体验!
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的所有需求,是最完善的甘特图图表库。
当您声称您的产品具有高级定制功能时,客户一定会对产品进行严格测试,这个规则当然适用于DHTMLX Gantt,官方技术团队收到了很多关于如何在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,
请注意,如果不这样做,项目任务中的括号将扩展到任务边界之外,并将显示在下一行。
由于篇幅有限,下期继续讲解,请持续关注查看最新产品资讯哦~
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:慧都网Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
在处理电子表格时,尤其是在专业和数据导向型环境中,正确设置 Excel 单元格内的数字格式至关重要。本文将介绍如何使用 Spire.XLS for Java 设置 Excel 单元格的数字格式,帮助轻松创建精美且结构清晰的电子表格。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢