确定今天的主题费了我不少工夫,我开始打算学习brain,后来又去看了看Twitter Server,但是我最后决定学习TimelineJS。本文将介绍如何使用TimelineJS为一系列文章创建一个精美的时间轴。

TimelineJS是什么?

TimelineJS 是一个开源库,可以帮助你创建精美、可交互的时间轴。它可以使用Google试算表或基于JSON的REST后端作为数据来源。它可以处理不同种类的内容,从多个来源获取媒体文件,包括:

  1. Twitter
  2. Google Plus
  3. Flickr
  4. Youtube , Vimeo , DailyMotion
  5. Google Maps

TimelineJS Demo

我今天构建的示例程序以时间轴的形式展示我的《30天学习30种新技术》系列文章。它部署在OpenShift上,你可以在此访问。

用户访问应用的/时,将看到包括所有已发表文章的时间轴。这背后通过REST(/api/v1/stories)获取文章信息。

GitHub仓库

今天的示例应用代码可以从GitHub获取。

两分钟内运行

这里假设你已经安装了OpenShift客户端工具。请参阅OpenShift文档获取安装信息。

我们将开始创建名为day23demo的示例应用。

rhc create-app day23demo tomcat-7 mongodb-2 --from-code=https://github.com/shekhargulati/day23-timelinejs-demo.git

这会为我们创建一个应用容器——gear,然后设置公开的DNS,创建私有git仓库,最后利用你的Github仓库中的代码来部署应用。应用可以通过http://day23demo-{domain-name}.rhcloud.com/访问。用你自己的OpenShift域名替换{domain-name} (域名有时也被称为命名空间)。

应用部署完成后,你可以使用curl来创建新文章:

curl -i -X POST -H "Content-Type: application/json" -d '{"url":"https://www.openshift.com/blogs/day-21-docker-the-missing-tutorial","startDate":"2013,11,18"}' http://day23demo-{domain-name}.rhcloud.com/api/v1/stories

背后的秘密

这个应用包括两部分——使用Spring框架构建的后端和用TimelineJS、jQuery构建的前端。在我昨天的文章中,我详细介绍了如何使用Spring框架和MongoDB来构建一个REST后端。更多信息请参考day 22

TimelineJS使用的JSON格式如下:

{"timeline":{"headline":"30 Technologies in 30 Days -- By Shekhar Gulati","type":"default","text":"Learn 30 Technologies in 30 Days","startDate":"2013,10,29","date":[{"id":"528cb57de4b015e760ed06be","url":"https://www.openshift.com/blogs/day-1-bower-manage-your-client-side-dependencies","headline":"Day 1: Bower--Manage Your Client Side Dependencies","text":"<p>...</p>","startDate":"2013,10,29","asset":{"media":"https://www.openshift.com/sites/default/files/bower- logo.png"}},{"id":"528cb5bee4b015e760ed06bf","url":"https://www.openshift.com/blogs/day-2-angularjs-getting-my-head-around-angularjs","headline":"Day 2: AngularJS--Getting My Head Around AngularJS","text":"...","startDate":"2013,10,30","asset":{"media":"https://www.openshift.com/sites/default/files/angularjs-from-30k-feet.png"}}]}}

idurl是可选的。

index.html指明应用的用户接口。我们使用jQuery发起GET请求。GET请求获取的信息交给TimelineJS在id为timeline的div中渲染。createStoryJS函数初始化新的时间轴。

<!DOCTYPE html>
<html lang="en"><head><title>30 Technology in 30 Days Timeline</title><meta charset="utf-8"><meta name="description" content="30 Technology in 30 Days Timeline"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-touch-fullscreen" content="yes"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"><!-- Style--><style>html, body {height:100%;padding:0px;margin:0px;}</style><!-- HTML5 shim, for IE6-8 support of HTML elements--><!--[if lt IE 9]><script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]--><script type="text/javascript" src="lib/jquery-min.js"></script><script type="text/javascript" src="js/storyjs-embed.js"></script><script>$(document).ready(function(){$.get('/api/v1/stories',function(result){createStoryJS({type:   'timeline',width:    '100%',height:   '600',source:   result,embed_id: 'timeline',debug:    true});});});</script></head><body><div id="timeline"></div></body>
</html>

这是今天的内容。要继续反馈哦~


原文 Day 23: TimelineJS--Build Beautiful Timelines
翻译 SegmentFault

Day 23:使用 TimelineJS 构建精美的时间轴相关推荐

  1. 设计Twitter时间轴并进行搜索

    设计 Facebook 的 feed 与设计 Facebook 搜索与此为同一类型问题. 第一步:简述用例与约束条件 搜集需求与问题的范围. 提出问题来明确用例与约束条件. 讨论假设. 我们将在没有面 ...

  2. php中时间轴开发,即显示为“刚刚”、“5分钟前”、“昨天10:23”等

    php中时间轴开发,即显示为"刚刚"."5分钟前"."昨天10:23"等 其实这个没什么技术含量,当然就直接贴代码,不废话了(合肥旅游网), ...

  3. Salmon构建索引的时间效率和计算效率明显高于STAR

    前面我们评估了不同大小基因组基于STAR构建索引所需的计算资源和时间资源.不同大小数据集基于STAR进行比对所需的计算资源和时间资源和STAR比对速度与分配线程的关系. 将人类基因组按染色体拆分模拟不 ...

  4. 逆水寒服务器什么时候能维护好,逆水寒更新了什么内容 8月23日官方维护内容及时间一览...

    逆水寒更新了什么内容?不少玩家都很感兴趣逆水寒8月23日更新了什么内容,因此针对这个问题给各位介绍一番逆水寒8月23日官方维护内容及时间一览,希望对你们有用各位. 那么这次的停机更新些什么内容呢?想必 ...

  5. 水平时间轴css代码_使用CSS和JavaScript构建水平时间线

    水平时间轴css代码 在上一篇文章中 ,我向您展示了如何从头开始构建响应式垂直时间轴. 今天,我将介绍创建相关的水平时间线的过程. 与往常一样,要初步了解我们将要构建的内容,请查看相关的CodePen ...

  6. timeline,一个简单精美的自定义时间轴

    H-Express Library--------timeline 这是母项目 H-Express 中的那个自定义时间轴view,现抽取出来分享给大家,这个自定义view比较简单,作为学习自定义vie ...

  7. office timeline 5|office timeline pro/plus 5(PPT时间轴制作插件) v5.00.00.00

    office timeline pro/plus 5是专为办公人士所打造的一款PPT时间轴制作插件,它可以帮助用户快速制作PPT和工作流程图,且毫不费力,从而大幅提高工作效率.同时该软件拥有非常多的功 ...

  8. unity 自定义时间轴_如何创建自定义时间轴标记

    unity 自定义时间轴 Starting with Unity 2019.1, Timeline supports markers! In this blog post, I will show y ...

  9. react创建组件_如何使用React创建时间轴组件

    react创建组件 These days I've been working on a new page for my website. I wanted to have a Timeline to ...

最新文章

  1. 【小贴士】在线画流程图工具
  2. 查看oracle已经锁定的表,Oracle中查询被锁定的表
  3. 从一点儿不会开始——Unity3D游戏开发学习(一)
  4. 如何定义一个有效的OWIN Startup Class
  5. 子商城管理之签到活动
  6. python菜鸟教程100例-Python 练习实例4
  7. 翁恺c语言程序设计入门作业,程序设计入门——C语言
  8. 寻找丢失的iexplore进程
  9. Win7任务管理器进程一直在跳动选中不了的处理方法
  10. linux pppd源码下载_LINUX下的拨号利器:wvdial和pppd —— 转载
  11. 创建图 figure figcaption
  12. Monjes Budistas - Live Mantra(2008)[古典红底红花边]
  13. Nacos的配置及使用--windows
  14. XSSFWorkbook下载excel表格
  15. My Dream Life
  16. JAVA修炼秘籍第六章《鏖战》
  17. matlab由两位随机整数构成的矩阵,建立5阶由两位随机整数构成的矩阵A,其语句是( )...
  18. [msi]读取文件.msi时出错。请确认文件存在,并且您可以访问改文件
  19. Office365 - 如何在Android手机中reset OneDrive
  20. LRU缓存机制,你想知道的这里都有

热门文章

  1. 传统金融PK互联网 必须透过现象看本质
  2. 海康威视:国际化+互联网 公司迎来“第二春”
  3. linux https重定向,Linux | Apache环境下强制http跳转至https的配置总结
  4. 九、【栈和队列】栈和递归
  5. Centos6.5安装/运行/启动/登录docker
  6. 判断回文链表(剑指offer.027)
  7. java自带工具_深入了解Java JDK自带工具,包括javac、jar、jstack等,实用~
  8. python判断能否形成等差数列
  9. 2021-06-11 pytorch基本语法
  10. oracle var/tmp,关于/var/tmp/.oracle 目录(ZT)