Vis js时间线范围元素自定义绘制

Posted

技术标签:

【中文标题】Vis js时间线范围元素自定义绘制【英文标题】:Vis js timeline range element custom draw 【发布时间】:2019-11-11 15:52:45 【问题描述】:

我发现 vis.js 非常有用,但现在需要在时间轴中使用的范围元素的边缘(开始/结束)添加自定义“符号”(向上指示符、向下指示符等)。

我可以在其他元素之前/之后添加单独的元素,但这需要更多的努力并且会影响堆叠等。 或者...我可以将 html 文本/符号放在表格中,并使用 css 将其强制到元素的开头/结尾,但这似乎并不总是正确显示。

解决此问题的建议方法是什么?

【问题讨论】:

【参考方案1】:

您应该在将呈现您的范围项目的选项中提供一个模板函数。

您的模板函数返回的内容可以是任何有效的 HTML,因此您可以使用 div、表格等来添加和定位额外的符号。

文档:

https://visjs.org/docs/timeline/#Templates

时间轴支持模板来格式化项目内容。可以使用任何模板引擎(例如把手或小胡子),也可以手动构建 HTML。在选项中,可以提供一个模板处理程序。该处理程序是一个函数,接受项目的数据作为第一个参数,项目元素作为第二个参数,编辑后的数据作为第三个参数,并输出格式化的 HTML。

示例:

var options = 
  template: function (item, element, data) 
    return '<h1>' + item.header + data.moving?' '+ data.start:'' + '</h1><p>' + item.description + '</p>';
  ,
  onMoving: function (item, callback) 
    item.moving = true;
  
;

【讨论】:

以上是关于Vis js时间线范围元素自定义绘制的主要内容,如果未能解决你的问题,请参考以下文章

如何在 vis.js 时间轴中使用自定义语言环境

未找到 ID 未定义的自定义时间栏 - Vis js(更新到当前版本时)

在 iOS 7 上的 UITableViewCell 之间绘制自定义分隔线

使用绘图子图时绘制自定义误差线

自定义输入价格范围之间的动画 SVG 线

UE4中多种颜色轮廓线的后期处理