复杂甘特图的使用

本文分享了一位程序员在使用Highcharts开发甘特图功能时遇到的命名空间冲突问题及其解决办法。在Backbone框架下,由于之前引入了highcharts-stock,导致highcharts-gantt.js无法正常显示。为解决这个问题,采用了iframe内链的方式,将甘特图内容放在独立的gantt.html页面中,并在charts.js中通过iframe引入该页面,成功避免了命名空间冲突。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于程序员来说,在制作图表的时候使用频率最高的应该是echarts和highcharts两种,最近这段的时间我在使用highcharts进行开发甘特图的功能,做的比较简单,进行一个简单的分享。
如果你用的是比较流行的前端框架,基本网上都用进行使用的简单教程,直接进行引入highcharts-gantt.js即可。甘特图js下载地址

由于我们使用的backbone作为前端的框架,简单的记录一下自己在本系统制作甘特图的过程中遇到的一些棘手的问题。
首先遇到的第一个问题就是high-gantt.js引入的问题,在刚开始进行引入js时,本来应该显示的甘特图竟然出乎意料的不显示,这个就很无奈了,既然遇到了问题,对于我们来说就要去积极的解决问题,这也是当初喜欢编程的原因,每一次get到新的技术点,都感到编程的世界是真的有趣。
经过一番的找呀找朋友的努力,将问题的解决办法定位到highcharts命名空间冲突的问题上,因为在之前在系统已经将highcharts-stock进行了引入并进行使用,stock会将新引入的gantt.js进行覆盖,既然找到问题所在就要去解决
解决办法:
我们使用iframe进行内链,将想要进行显示的甘特图单独的放在gantt.html页面当中,并在charts.js中使用iframe将gantt.html的路径进行引入,将整个页面添加到想要放入的盒子中。
gantt.html

<style>
    /* 隐藏当前页面滚动条 */
    body::-webkit-scrollbar {
   
        display: none;
    }

    body {
   
        margin: 0;
    }
</style>
<div style="border:1px solid #e4eded" id="GTBox">

    <div ID="GTcontainer" style="min-width: 3000px;"></div>
</div>
//gantt.js在本地路径
<script src="../../../framework/highcharts/highcharts-gantt.js"></script>
<script>

    // 甘特图数据
    // 下拉框切换控制x轴显示格式
    // 改变tickInterval 进行周 和 月之间的切换
    if (window.parent.ganttType == '周') {
   
        window.parent.ganttXAis = [{
   
        因为我的甘特图有两个x轴,所以xAxis就是一个数组,第一个对象控制下面x轴的相关样式,第二个对象控制最上面x轴的相关样式
            gridLineWidth: 1,
            tickInterval: 24 * 3600 * 1000, //以周/日格式显示
            type: 'datetime'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值