timeline
组件可以很形象的将发生的事件排列在一起,便于比较,中文例子较少,本文举例说明一下 timeline 的使用以及定制:
演示@google code
1.band 的概念
每个band表示对时间的一种粒度描述,可以设置以一天,一月,一年的粒度来展现这一时间段内的事件:

band 可以指定其占整体组件的高度百分比,时间单位之间的像素值等。
注意点在于 band 间的同步需要手动指定,当以天为单位进行浏览时,其他的月和年即使变化缓慢也要随之变化。
2.event 与 eventSource 的概念
event 根据官方文档分为 2 大类:
1.即时事件,duration 配置为 false,表示为突发事件,该事件并没有占据时间区间,例如人物的出生死亡日期,等,该事件使用原点描述。
2.延续事件,事件具有一定的起始日期,而对于开始和结束日期又考虑是否是确定时间而加入了latestStart 与 earliestEnd的配置,用来表示不精确的开始与结束时间。

eventSource 就是对事件集合的包装,提供了通过静态数据或ajax获取事件信息。
3.bubble 的概念
当点击事件名时,会弹出气泡显示该事件的详细介绍,该内容从事件的description 配置中读取显示。

4. 过滤与高亮
可在每个band中设置过滤与高亮函数,根据传入特定事件作为参数调用得到返回值来确定该事件是否通过筛选,高亮。
timeline.getBand(0).getEventPainter().setFilterMatcher(filterMatcherFn);
timeline.getBand(0).getEventPainter().setHighlightMatcher(highlightMatcherFn);
5.标准使用流程
创建eventsource -> 创建 band info - > 创建 timeline 组件 -> eventSource 载入事件 -> timeline 刷新 UI
6.定制
4.1 event 条的颜色设置
在 event 信息中有 classname 配置项,当设置的话会再 event 条上设置 class :tape-classname,.small-classname ,可在css中指定对应类的背景色,即可实现event的不同颜色显示。
4.2 bubble 的宽度设置
bubble宽度可通过设置主题theme的方式解决,新增一个主题,对这个主题设置气泡的宽度,并将这个主题应用到band即可:
theme = Timeline.ClassicTheme.create();
theme.event.bubble.width = 450;
var base=new Date(2010,1,1);
var bandInfos = [
Timeline.createBandInfo({
eventSource: eventSource,
date:base,
width: "70%",
theme: theme,
intervalUnit: Timeline.DateTime.DAY,
intervalPixels: 100
})
4.3 bubble 时间尾注去除

bubble末尾的时间尾注没有作用可通过对css类 timeline-event-bubble-time 进行隐藏操作而去除。
PS: 定制 css 的引入方法
为了便于使用,可将css定义同js写在一起,在页面载入时动态生成内联css加入页面
if (!document.getElementById("timeline_style")) {
//跨浏览器动态添加css
var node = document.createElement("style");
node.type = 'text/css';
node.setAttribute("id", "timeline_style");
var styleStr = ".tape-alarm-task,.small-alarm-task {" +
"background:red;" + " }\n" +
".tape-plan-task,.small-plan-task {" +
"background:green;" + " }\n" +
".timeline-event-bubble-time {" + " display:none;" + "}\n";
var head = document.getElementsByTagName("head")[0];
if (node.styleSheet) {
node.styleSheet.cssText = styleStr;
} else {
node.appendChild(document.createTextNode(styleStr));
}
head.appendChild(node);
}

- 大小: 28.1 KB

- 大小: 21.1 KB

- 大小: 5.2 KB
分享到:
相关推荐
gwtsimiletimeline GWT API 库支持 GWT 框架内的 SIMILE Timeline。 这是作为网站一部分开发的。 gTraffic 站点在 Google 地图上显示英国交通信息。 SIMILE Timeline 是一个基于 DHTML 的小部件,用于可视化基于时间...
其与SIMILE-Timeline(2009年已停止开发)功能类似,但使用上更为简洁,也更符合现在的使用习惯。比Chronoline具有更好的显示。 和Timeglider以及TimelineJS不同,该软件并非致力于多媒体展示。 标签:...
Timeline是一款由Simile Widgets组织开发的JavaScript库,它提供了一个强大的、可自定义的时间轴视图,用于展示和交互式探索时间序列数据。这款工具以其直观的用户界面和高效的DHTML及AJAX技术赢得了广泛的赞誉。...
- `jsf-timeline.jar`:这应该是JSF组件的主要实现,包含了SIMILE时间线的JSF封装和可能的额外功能。 - `weblets-impl-0.4.jar`和`weblets-api-0.4.jar`:Weblets可能是一个用于构建Web应用的框架或者扩展,这些库...
SimileTimelineEPrints 用于EPrints / e-artexte JSON数据的类似时间表 基于开源 电子文本可视化集成,作者:Tomasz Neugebauer 数据来源: ://e-artexte.ca的摄影展目录元数据 现场演示: : ...
d3的时间表 ...戴维·弗朗索瓦·休恩(DavidFrançoisHuynh)的“ Simile时间线”( )和比尔·邦克(Bill Bunkat)的“使用d3.js的游泳图( )。 文件结构 具有以下行结构的任何csv数据文件都可以: 开
在“SIMILE_documentation-main”这个文件中,用户可以期待找到关于如何使用这些工具的详细指南、示例代码、最佳实践以及常见问题解答等内容。这些文档将帮助开发者和数据管理员更好地集成SIMILE到他们的项目中,...
该项目允许您动态管理时间线内容(保存在 SQLite 数据库中),而 SIMILE 时间线小部件本身只能用于反映静态内容(XML 文档)。 (请参阅页面底部的图片以获取想法) 特征 事件或阶段添加到工作流程 创建新工作流程...
- 与 Simile Timeline/Exhibit 的集成。 Flare 作为 Blacklight 的一部分被分离出来,作为一个独立的 Rails 插件,它提供了多种高级特性,如搜索建议、保存搜索等,大大增强了用户界面的友好性和可用性。 #### ...
已经对timeline_source_v2.3.0的一些文件进行了一些自定义。 该项目最初由SOAS Digital Collection-伦敦大学( )资助,该项目完成原始项目后慷慨地支持开源发行。 截至2017年5月27日,已针对最新版本的SobekCM...