Highcharts Gantt使用符号的自定义数据标签开发甘特图示例

使用符号的自定义数据标签、带头像 + Font Awesome 图标标签的甘特图代码,复制就能用!

完整可运行代码(带头像 + 图标数据标签)

javascript 复制代码
Highcharts.ganttChart('container', {

    title: {
        text: 'Highcharts Gantt Chart'
    },

    subtitle: {
        text: 'With custom symbols in data labels'
    },

    xAxis: {
        minPadding: 0.05,
        maxPadding: 0.05
    },

    yAxis: {
        categories: ['Prototyping', 'Development', 'Testing']
    },

    tooltip: {
        outside: true
    },

    accessibility: {
        point: {
            valueDescriptionFormat: '{point.yCategory}, assigned to ' +
                '{point.assignee} from {point.x:%Y-%m-%d} to ' +
                '{point.x2:%Y-%m-%d}.'
        }
    },

    lang: {
        accessibility: {
            axis: {
                xAxisDescriptionPlural: 'The chart has a two-part X axis ' +
                    'showing time in both week numbers and days.'
            }
        }
    },

    series: [{
        name: 'Project 1',
        data: [{
            start: '2018-12-01',
            end: '2018-12-02',
            y: 0,
            assignee: 'bre1470'
        }, {
            start: '2018-12-02',
            end: '2018-12-05',
            y: 1,
            assignee: 'oysteinmoseng',
            fontSymbol: 'exclamation',
            accessibility: {
                description: 'Exclamation symbol.'
            }
        }, {
            start: '2018-12-08',
            end: '2018-12-09',
            y: 2,
            assignee: 'TorsteinHonsi'
        }, {
            start: '2018-12-09',
            end: '2018-12-19',
            y: 1,
            assignee: 'bre1470'
        }, {
            start: '2018-12-10',
            end: '2018-12-23',
            y: 2,
            assignee: 'TorsteinHonsi',
            fontSymbol: 'smile-o',
            accessibility: {
                description: 'Smiling face symbol.'
            }
        }],
        dataLabels: [{
            enabled: true,
            format: '<div style="width: 20px; height: 20px; overflow: ' +
                'hidden; border-radius: 50%; margin-left: -25px">' +
                '<img src="https://github.com/{point.assignee}.png" ' +
                'style="width: 30px; margin-left: -5px; margin-top: -2px">' +
                '</div>',
            useHTML: true,
            align: 'left'
        }, {
            enabled: true,
            format: '<i class="fa fa-{point.fontSymbol}" style="font-size: ' +
                '1.5em"></i>',
            useHTML: true,
            align: 'right'
        }]
    }]
});

这个图表的特色功能 ✨

✅ 左侧显示 GitHub 圆形头像 (自动从 GitHub 加载)✅ 右侧显示 Font Awesome 图标 (感叹号、笑脸等)✅ 任务条左右双数据标签 ✅ 自定义任务分类 :原型 / 开发 / 测试✅ 鼠标悬浮提示 ✅ 无障碍访问支持

关键点说明

  1. useHTML: true 必须开启,才能渲染 <img> 和 <i> 图标。

  2. **assignee**自定义字段,存放 GitHub 用户名,自动显示头像。

  3. **fontSymbol**自定义字段,对应 Font Awesome 图标名称。

  4. Font Awesome 必须引入否则图标无法显示。

直接复制保存为 .html 打开即可完美运行!

相关推荐
excel2 小时前
基于 GPT 的自动发布文章接口方案:从一句话或一张图片生成并发布内容
前端·javascript·后端
OpsEye8 小时前
大模型 Token 计量不准,是什么原因,怎么解决??
javascript·ai编程
独隅10 小时前
WebStorm Windows 版 React / Next.js 实战替换指南
javascript·windows·webstorm
冷眸_10 小时前
同名食材不能直接相减:一个 JavaScript 用量模型的边界
javascript
apollo_qwe10 小时前
接口超时了,前端为什么不能直接重试?
javascript·http
toooooop814 小时前
CRMEB 故障排查笔记:安全网关只放行 GET/POST 怎么办
前端·javascript·vue.js·thinkphp6·crmeb
软件技术NINI15 小时前
基于SpringBoot和Vue的项目评审系统
javascript·vue.js·spring boot·后端·spring·毕业设计·毕设
vipxieliang15 小时前
JavaScript 模板字符串与标签模板:不只是拼接
前端·javascript
Dream-Y.ocean1 天前
鸿蒙PC平台宅匠 3D 室内设计适配实战:基于 Electron 壳方案的 Three.js 双渲染引擎与参数化户型编辑器开发
javascript·3d·harmonyos