TimelineJS嵌入教程:将时间轴无缝集成到你的网站
你是否曾想在网站中展示一段引人入胜的历史进程? TimelineJS提供了一种简单高效的方式,让你无需复杂编程就能创建交互式时间轴。本教程将带你通过三种常用方式,在10分钟内完成时间轴的嵌入,无论你是内容创作者还是网站管理员,都能轻松掌握。
准备工作:获取TimelineJS资源
开始前需准备TimelineJS核心文件,有两种获取方式:
- 本地部署:通过仓库克隆获取完整代码
git clone https://gitcode.com/gh_mirrors/tim/TimelineJS.git
项目结构中,嵌入相关文件位于examples/目录,核心JS文件为source/js/VMM.Timeline.js
- 使用CDN:生产环境推荐使用国内CDN(需替换为实际可用地址)
<script src="https://cdn.example.com/storyjs-embed.js"></script>
方法一:基础JSON数据嵌入
JSON格式是最灵活的数据源方式,适合本地管理时间轴数据。
- 创建数据文件:参照examples/example_json.json格式,创建包含时间节点的JSON文件
{
"title": {
"text": {
"headline": "我的项目时间轴",
"text": "记录重要发展节点"
}
},
"events": [
{
"start_date": { "year": "2023", "month": "1" },
"text": { "headline": "项目启动", "text": "开始规划阶段" }
}
]
}
- 嵌入HTML代码:在网页中添加容器和配置脚本
<div id="timeline-embed"></div>
<script type="text/javascript">
var timeline_config = {
width: "100%",
height: "600px",
source: "example_json.json" // JSON文件路径
}
</script>
<script src="source/js/VMM.Timeline.js"></script>
完整示例可参考examples/example_json.html
方法二:Google表格数据源
适合多人协作维护的时间轴,支持实时更新数据。
-
准备表格:按模板创建Google表格,发布为网页(文件>发布到网络)
-
获取表格ID:从发布URL中提取ID(如
https://docs.google.com/spreadsheet/pub?key=TABLE_ID&output=html) -
嵌入代码:使用表格ID配置时间轴
<div id="timeline-embed"></div>
<script type="text/javascript">
var timeline_config = {
width: "100%",
height: "600px",
source: "https://docs.google.com/spreadsheet/pub?key=TABLE_ID&output=html"
}
</script>
<script src="source/js/VMM.Timeline.js"></script>
完整实现见examples/example_googlespreadsheet.html
方法三:jQuery动态加载
适合需要动态控制时间轴的高级场景,支持事件绑定和参数修改。
- 引入jQuery库:确保页面已加载jQuery
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
- 动态初始化:使用JavaScript API创建时间轴
<div id="my-timeline"></div>
<script>
$(document).ready(function() {
createStoryJS({
type: 'timeline',
width: '800',
height: '600',
source: 'example_json.json',
embed_id: 'my-timeline'
});
});
</script>
这种方式支持动态更新数据源,适合单页应用场景。示例代码位于examples/example_jquery_load.html
样式自定义与高级配置
主题切换
TimelineJS提供多种主题,通过修改CSS文件实现:
- 默认主题:source/css/timeline.css
- 深色主题:source/less/Theme/Dark.less
字体设置
通过修改source/less/Core/Font/目录下的LESS文件自定义字体,支持多种预设组合:
常见问题解决
跨域数据加载
当使用远程数据源时,需确保服务器支持CORS或使用JSONP格式。JSONP示例见examples/example_jsonp.html
响应式布局适配
添加视口设置确保移动端显示正常:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
性能优化
- 大型时间轴建议使用分页加载
- 图片资源使用懒加载,参考source/js/Library/LazyLoad.js
示例展示与资源
官方提供多个应用示例,可直接参考实现:
- ** Storify集成**:examples/example_storify.html
- 多语言支持:source/js/Core/Language/locale/目录包含30+种语言包
总结
通过本教程,你已掌握TimelineJS的三种嵌入方式,从简单的JSON文件到高级的动态加载。无论是个人博客、企业网站还是教育平台,都能通过时间轴清晰展示事件序列。更多高级功能可查阅DEVELOPER.md文档。
建议收藏本教程,关注项目更新获取最新功能。如有疑问,可参考tests/目录下的测试用例或提交issue反馈。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0191
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0118
Step-3.7-FlashStep-3.7-Flash是一个拥有 1980 亿参数的稀疏混合专家(MoE)视觉语言模型,由 1960 亿参数的语言主干网络和 18 亿参数的视觉编码器组合而成,具备原生图像理解能力。Python00
JoyAI-EchoJoyAI-Echo,这是一个独立的、仅用于推理的版本,旨在实现分钟级多镜头音视频生成。它采用了经过蒸馏的DMD生成器、配对的跨模态记忆以及故事级别的一致性。其性能的核心在于,一个跨模态视听记忆库能够在长达五分钟的视频中保持角色外观和语音音色的一致性。同时,一个训练后处理流程将基于记忆的强化学习与分布匹配蒸馏相结合,实现了7.5倍的速度提升,显著增强了视觉质量和对齐效果。00
fun-rec推荐系统入门教程,在线阅读地址:https://datawhalechina.github.io/fun-rec/Python03
so-large-lm大模型基础: 一文了解大模型基础知识01

