天天看點

timeline的使用和參數說明

關于swidget-timeline的使用和需要的檔案

在使用之前,你可以進入官方網站下載下傳源碼,或者直接使用附件中的源碼,附件中的源碼我将logo去掉了

樣式也做了修改,點選事件顯示的時候要顯示的時間我也給去掉了,主要是它的時間格式不是我們所需要的格式,改為我們需要的格式比較麻煩,接下來我根據我的使用介紹一下部分參數資訊

1.首先我們可以根據index.html或者jfk/jfk.html看到事例,

在jfk.html中

zones = [

                {   start:    "Sat Jan 01 2000 00:00:00 GMT+0800",

                    end:      "Mon Dec 31 2020 00:00:00 GMT+0800",

                    magnify:  50,

                    unit:     Timeline.DateTime.DAY,

                    multiple: 1

                }];

上面的json資料可以有多個,我這兒隻是配了一個,自己根據需要配置,當然事例中是有多個的,我的事例中改為一個了,另外這個有多個實作父子層時間線的滾動效果

上面5個參數的含義

start:設定開始時間

end:設定結束時間位置

magnify:設定相鄰兩個時間點之間的間距

unit:設定時間機關,小時 分鐘 天 月份都行,但是都要以它的格式來定義,否則會報錯

var bandInfos = [//設定層

                Timeline.createHotZoneBandInfo({

                    width:          "70%", //上層所占百分比

                    intervalUnit:   Timeline.DateTime.WEEK, //時間間隔屬性,實作上中下分層

                    intervalPixels: 220,

                    zones:          zones,

                    eventSource:    eventSource,

                    date:           date,

                    timeZone:       +8,

                    theme:          theme

                }),

                Timeline.createHotZoneBandInfo({

                    width:          "15%",

                    intervalUnit:   Timeline.DateTime.MONTH,

                    intervalPixels: 200,

                    zones:          zones2,

                    eventSource:    eventSource,

                    date:           date,

                    timeZone:       +8,

                    overview:       true,

                    theme:          theme

                }),

                Timeline.createHotZoneBandInfo({

                    width:          "15%",

                    intervalUnit:   Timeline.DateTime.MONTH,

                    intervalPixels: 100,

                    zones:          zones3,

                    eventSource:    eventSource,

                    date:           date,

                    timeZone:       +8,

                    overview:       true,

                    theme:          theme

                })

            ];

上面這段代碼是實作分層的效果,效果圖如下

timeline的使用和參數說明

實作3層時間關聯的代碼

//實作關聯代碼

            bandInfos[1].syncWith = 0;

            bandInfos[1].highlight = true;

            bandInfos[2].syncWith = 0;

            bandInfos[2].highlight = true;

預設隻有前兩行

2 關于資料的加載,timeline隻支援網絡加載的json檔案和xml檔案,其他的可支援的暫時不清楚,有知道的請分享一下

 tl.loadXML("../xml/201405070513560007.xml", function(xml, url) { eventSource.loadXML(xml, url); });

3.xml作為資料檔案的參數資訊

isDuration="true",是否持續顯示,true為顯示持續的線,false顯示為圓

link="http://www.baidu.com"

'title': 顯示的标題,        

'image':此處為圖檔的連結位址,

'color':設定字型顔色

Xml中間的内容即點選之後的内容,同json檔案中的description中的内容

durationEvent="true"  讓持續顯示的線條顔色呈深色,否則為淺色

<!--EndFragment-->

4.json檔案作為資料格式

{

'dataTimeFormat': "iso8601",

'wikiURL': "http://simile.mit.edu/shelf/",

'wikiSection': "Simile Cubism Timeline",

'events' : [

        {'start': 'Mon Nov 10 2013 12:12:12 GMT-0800',

        'title': 'durationEvent false, start date',

        'durationEvent' : false

        },

        {'start': 'Mon Nov 25 2013 13:13:13 GMT-0800',

        'latestStart': 'Mon Nov 25 2013 15:13:13 GMT-0800',

        'end': 'Tue Nov 26 2013 13:13:13 GMT-0800',

        'description':'Welcome use Timeline!',

        'title': 'durationEvent true, start, latestStart, end dates',

        'image':'http://www.hua.com/flower_picture/meiguihua/images/r14.jpg',

        'link':'http://www.baidu.com',

        'isDuration':true,

        'color':'#00FEFF',

        'durationEvent' : false

        },

        ......]

}

官網預設的含有datatimeformat:iso8601的時間格式,時間都是年為機關的eg:2014,此處我将本行去掉後,将時間格式改為了格林威治時間時間格式

使用xml作為資料源的配置檔案則需要将jfk.html或者index.html(顯示頁面)使用

使用json格式作為需将tl.loadXML()改為tl.loadJSON()

tl.loadXML("jfk.xml", function(xml, url) { eventSource.loadXML(xml, url); });

如果使用json檔案作為配置檔案則使用

tl.loadJSON("test.json",function(xml,url) { eventSource.loadJSON(xml, url); });

json檔案中的字段含義

'start': 開始時間,

'latestStart': 最近的時間,(時間不确定,如果含有此項則不會高亮顯示内容并且點選不會顯示出詳細的内容,參考https://code.google.com/p/simile-widgets/wiki/Timeline_EventSources)

'end': 結束時間,

'description':要顯示的内容,

'title': 顯示的标題,        

'image':此處為圖檔的連結位址,

'link':點選完顯示的标題後标題對應的連結位址,

'isDuration':是否持續顯示(值為true|false),

'color':标題顯示的顔色,

'durationEvent' : 是否為持續事件(true|false)如果為true在頁面上顯示的是一個線形,如果為false則顯示為小圓點選圖示,但在小圓事件上有一條線跟設定為true效果一緻

5.logo的去掉:

去掉logo  timeline-bundle-debug.js 2882行 var elmtCopyright=SimileAjax.Graphics.createTranslucentImage下的classname和title去掉即可

Timeline-bundle.js 2885

var A=SimileAjax.Graphics.createTranslucentImage(Timeline.urlPrefix+(this.isHorizontal()?"":""));

A.className="timeline-copyright";

A.title="SIMILE Timeline - http://localhost:8080/timeline";

SimileAjax.DOM.registerEvent(A,"click",function(){window.location=http://localhost:8080/timeline;

});

6.隐藏預設的時間格式

将預設的時間格式隐藏:

在timeline-bundle.js中找到

4365行

var G = L.createElement("div");

this.fillTime(G, K);

//D.event.bubble.timeStyler(G);

A.appendChild(G);

将這段代碼注釋并将下列代碼注釋即可

4460行

,

timeStyler : function(A) {

A.className = "timeline-event-bubble-time";

A.setAttribute("style","visibility: hidden;");

}

注釋

添加

A.setAttribute("style", "display:none;");或者

A.setAttribute("style", "visibility: hidden");隻對chrome有效(本人使用的浏覽器)IE8無效

<!--EndFragment-->

7.該項目引入到自己的項目中

如果不做修改的話,最原始的是引入的官網的檔案,你斷網可能就無法顯示了

下面  timeline-api.js中位址改為自己的項目位置

 if (typeof SimileAjax == "undefined" && !isCompiled) {

        window.SimileAjax_onLoad = loadMe;//加載上面的loadme函數中的js檔案

        //讀取simple-ajax-api.js

        var url = useLocalResources ?

         "http://localhost:8080/timeline/ajax/2.2.1/simile-ajax-api.js?bundle=false" :

            //"http://127.0.0.1:9999/ajax/api/simile-ajax-api.js?bundle=false" :

   //"D:/source/simile-widget/ajax/" + simile_ajax_ver + "/simile-ajax-api.js";

            "http://localhost:8080/timeline/ajax/" + simile_ajax_ver + "/simile-ajax-api.js";

        if (typeof Timeline_ajax_url == "string") {

           url = Timeline_ajax_url;

        }

<!--EndFragment-->

格式化後的位置大概在277行………………

如果有錯誤或者更好的意見請分享和指正!

<!--EndFragment--> 時間層在IE中顯示為方形箭頭,該處的樣式為了保持與其他浏覽器樣式一樣,找到timeline/api/timeline-bundle.js的109行和337行(該檔案未做修改的情況) if (SimileAjax.Platform.browser.isIE) { B.style.cursor = "move"; } 将上面的move改為pointer就是小手了,根據自己的需要做對應的修改。  

繼續閱讀