導入方法
1.下記ファイルをダウンロードする。
- k2go-timeline.js
- k2go-timeline-env.js
- k2go-timeline.css
- k2go-timeline-img.zip
2.プラグインを取り込みたいHTMLファイルが格納されているフォルダにダウンロードしたプラグインを格納する。
※1.「img.zip」は解凍して使用してください。
フォルダ構成 例
│
│ index.html // プラグインを取り込みたいHTMLファイル
│
├─css
│ index.css // HTMLファイル用CSSファイル
│ k2go-timeline.css // HTMLファイル用CSSファイル
│
├─img
│ 「k2go-timeline-img.zip」に格納されていた画像ファイル
│
└─js
index.js // ユーザカスタムの処理、Timelineのイベント呼び出しを行うためのjavascriptファイル
k2go-timeline-env.js // Timeline用設定ファイル
k2go-timeline.js // Timelineプラグイン
4.ダウンロードしたプラグイン・ライブラリを使用する為、HTMLファイルへ組み込む。
※ユーザカスタムの処理、Timelineのイベント呼び出しを行うためのjavascriptファイルは「type="module"」で取り込むこと。
例
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<link type="text/css" href="css/index.css" rel="stylesheet">
<link type="text/css" href="css/k2go-timeline.css" rel="stylesheet">
<script type="text/javascript" src="js/k2go-timeline.js"></script>
<script type="text/javascript" src="js/k2go-timeline-env.js"></script>
<script type="text/javascript" src="js/index.js"></script>
</head>
<body>
・・・
</body>
</html>
5.HTMLファイルのbody要素内に組み込みたいカスタム要素を実装する。
例
<body>
<k2go-timelineheader data-header-position="top"></k2go-timelineheader> // ヘッダー部品用カスタム要素
<k2go-functionbar></k2go-functionbar> // 再生機能用カスタム要素
・・・
<k2go-timeline></k2go-timeline> // 時間軸用カスタム要素
</body>
6.ユーザカスタムの処理、Timelineのイベント呼び出しを行うためのjavascriptファイルにTimelineプラグインをimportするコードを追加する。
コード追加例
import "./k2go-timeline.js";
document.addEventListener("DOMContentLoaded", () => {
document.querySelector("k2go-timeline").addEventListener("change", () =>
{
// ユーザーカスタム処理
});
});
オプション
「env.js」ファイルに定義されているオプション設定値を変更することによりTimelineの処理変更・制御が行える。
名前 |
型 |
初期値 |
説明 |
startTime |
Date |
今日の0時0分0秒 |
時間軸バーの左端の日時。 |
endTime |
Date |
今日の23時59分59秒 |
時間軸バーの右端の日時。 |
currentTime |
Date |
現在日時 |
時間軸バーの摘み(ポインタ)の日時。 |
minTime |
Date |
現在より100年前の日時 |
時間軸バーの過去方向への表示可能範囲。 |
maxTime |
Date |
現在より100年後の日時 |
時間軸バーの未来方向への表示可能範囲。 |
rangeStartTime |
Date |
undefined |
レンジバーの左端の日時。 |
rangeEndTime |
Date |
undefined |
レンジバーの右端の日時。 |
timezoneOffset |
Number |
OSのロケール値(JSTなら540) |
協定世界時 (UTC) までのタイムゾーンの差。単位は分。この値に基づき日時を表記します。 |
jpCalendar |
Boolean |
false |
trueに設定すると日時が和暦表示になります(通常は西暦表示)。 |
minScale |
Number |
1 |
1ピクセル辺りの最小時間幅。単位はミリ秒。1ピクセル辺りの時間幅が、この値以下にはズームインしません。 |
maxScale |
Number |
5184000000(60日) |
1ピクセル辺りの最大時間幅。単位はミリ秒。1ピクセル辺りの時間幅が、この値以上にはズームアウトしません。 |
disableMoveBar |
Boolean |
false |
trueに設定すると時間軸バーの左右へのドラッグ機能が無効になります。 |
disableZoom |
Boolean |
false |
trueに設定すると時間軸バーのズーム機能が無効になります。 |
syncPickAndBar |
Boolean |
false |
trueに設定すると時間軸バーと摘み(ポインタ)が同期して左右にドラッグするようになります。 |
clickBarToMovePick |
Boolean |
false |
trueに設定すると時間軸バーをクリックした時に摘み(ポインタ)がクリックした位置に移動するようになります。 |
labelPosition |
String |
"point" |
"point"に設定すると時間軸バー上のラベルは各日時の真下に表示されます。"range"に設定すると時間軸バー上のラベルは各日時間隔の中央に表示されます。
【例】年単位にラベルが表示される場合、"point"に設定すると「2024」は2024年1月1日の真下、「2025」は2025年1月1日の真下に表示されます。"range"に設定すると「2024」は2024年1月1日~2024年12月31日の中央、「2025」は2025年1月1日~2025年12月31日の中央に表示されます。
|
pickLineDistance |
Object |
"body" |
摘み(ポインタ)から表示される垂直線を設定するのに必要な対象要素を指定します。
|
pickLinePosition |
Object |
"top" |
摘み(ポインタ)から表示される垂直線の到達点を設定します。pickLineDistanceで指定した要素に対しpositionを"top"または"bottom"に指定します。摘み(ポインタ)から表示される垂直線はpickLineDistanceで指定された要素の上端("top")または下端("bottom")まで表示されます。
|
creating |
Boolean |
false |
ズームレンジ、時計ボタン、カレンダーアイコンなどのタイムラインバーに操作に関わるイベントの多重起動を防ぐための変数です。
|
zoomTable |
Object |
name : "ズームレベルの名称",
value: "ズームレベル" |
ズームレンジのズームレベルの設定を保存した配列です。
値の設定:
name:ズームレベルの名称を設定(String) ※ズームレベルが一秒の場合:"1sec"など
value:ミリ秒単位で値を設定(Number) ※一秒の場合:1000 * 1
【例】zoomTable[{name : " 1 sec" , value : 1000 * 1},{name : "30 sec" , value : 1000 * 30}]
|
playTable |
Object |
コマ送り速度 |
ヘッダー日時の再生をどの間隔で再生するかを設定するための配列です。
値の設定:秒間隔で値を設定可能
【例】playTable : [0.5, 1, 2, 3, 4, 5] この場合、0.5秒、1秒、2秒…5秒と値が設定できています。
|
playTableDefault |
Number |
2 |
再生設定のコマ送り速度の初期値を設定する変数です。
playTable配列から値を参照できます。
【例】playTable : [0.5, 1, 2, 3, 4, 5] 初期値の2の場合、1を取得することができます。
|
playSpanTable |
Object |
コマ送り間隔 |
ヘッダーの日時の年、月、日、秒などの、どの単位で再生させるかを決める設定を保存した配列です。
値の設定:年、月、日、秒などで値を設定可能
【例】playSpanTable : [1000 * 1, 1000 * 30,] この場合、1秒単位、30秒単位で設定することができています。
|
playSpanTableDefault |
Number |
3 |
ヘッダーの日時の、再生設定のコマ送り間隔の初期値を設定する変数です。
playSpanTable配列から値を参照できます。
【例】playSpanTable : [1000 * 1, 1000 * 30,] 初期値の2の場合、1000 * 30(30秒単位)を取得することができます。
|
playInterval |
Number |
1 |
playTableの配列から取得した値を保存して処理で使用するための変数です。
|
frameInterval |
Number |
1 |
playSpanTable配列から取得した値を保存して処理で使用するための変数です。
|
timeoutIdFwd |
null |
|
再生しているときの関数を保存しておくための変数です。
逆再生や、停止ボタンが押されたときに、再生を停止します。
|
timeoutIdBack |
null |
|
逆再生しているときの関数を保存しておくための変数です。
再生や、停止ボタンが押されたときに、逆再生を停止します。
|
enableHeaderBar |
Boolean |
true |
falseに設定するとヘッダー部品が非表示になります。 |
enableFunctionBar |
Boolean |
true |
falseに設定すると再生機能部品が非表示になります。 |
enableHeaderDate |
Boolean |
true |
ヘッダ部品に出力する時刻の表示形式を設定します。falseに設定するとユーザーが定義した形式の時刻が表示されます。 |
enableNowtime |
Boolean |
true |
現在日時の取得方法を設定します。falseに設定するとユーザーが実装した処理から現在日時を取得します。 |
enableRealtime |
Boolean |
true |
連動式のリアルタイム取得方法を設定します。falseに設定するとユーザーが実装した処理からリアルタイムを取得します。 |
disableViewURL |
Boolean |
true |
ViewURLにて表示するURLにパラメータを追加するか設定します。falseに設定するとユーザーが実装した処理からパラメータの取得、URLに追加をします。 |
pickDoubleTap |
Boolean |
true |
摘み(ポインタ)をダブルクリック(ダブルタップ)した際の処理を設定します。
ダブルクリックの場合は「pickDoubleTap」イベントにてマウスボタン情報が取得出来ます。値は左ボタンの場合が1、右ボタンの場合が-1となります(ダブルタップの場合は常に1)。
※注意※ trueに設定すると摘み(ポインタ)をダブルクリック(ダブルタップ)した際のデフォルト動作はズームですが、falseに設定すると摘み(ポインタ)をダブルクリック(ダブルタップ)した際はズームされなくなります。
|
オプション設定値変更の例
var Env =
{
startTime : new Date((new Date()).getFullYear(), (new Date()).getMonth(), (new Date()).getDate(), 0, 0, 0, 0),
endTime : new Date((new Date()).getFullYear(), (new Date()).getMonth(), (new Date()).getDate(), 23, 59, 59, 999),
currentTime : new Date(),
minTime : new Date((new Date()).getFullYear() - 100, 0, 1),
maxTime : new Date((new Date()).getFullYear() + 100, 0, 1),
rangeStartTime : undefined,
rangeEndTime : undefined,
timezoneOffset : (new Date()).getTimezoneOffset() * -1,
jpCalendar : false,
minScale : 1,
maxScale : 1000 * 60 * 60 * 24 * 60,
labelPosition : "point",
pickLineDistance: "body",
pickLinePosition: "top",
// ヘッダ部品表示設定(true:表示, false:非表示)
enableHeaderBar : true,
// 再生機能部品表示設定(true:表示, false:非表示)
enableFunctionBar : true,
// ヘッダ部品時刻表示設定(true:timelineのデフォルト処理, false:timeline外の処理)
enableHeaderDate : true,
// 現在日時取得設定(true:timelineのデフォルト処理, false:timeline外の処理)
enableNowtime : true,
// 連動式のリアルタイム取得設定(true:timelineのデフォルト処理, false:timeline外の処理)
enableRealtime : true,
// ViewURL追加パラメータ設定(true:取得しない, false:timeline外から値を取得)
disableViewURL : true,
// 西暦・和暦表示切替(true:和暦表示, false:西暦表示)
jpCalendar : false,
// 時間軸ドラック制御設定(true:ドラッグ不可, false:ドラッグ可)
disableMoveBar : false,
// ズーム抑制設定(true:抑制, false:非抑制)
disableZoom : false,
// 時間軸ドラック時ピック連動設定(true:連動, false:非連動)
syncPickAndBar : true,
// 時間軸ドラック時ピック移動設定(true:マウスカーソルの位置まで移動, false:ピック移動制御)
clickBarToMovePick : false,
// ポインタをダブルクリック(ダブルタップ)(true:ズーム処理, false:マウスボタンの情報取得)
pickDoubleTap : true,
};
setCustomData イベント
ヘッダ部品の時刻表示、現在日時・連動式のリアルタイム取得、ViewURLの処理に対し、ユーザー独自の値を取得、渡すことが可能です。
※使用するには「env.js」ファイルに定義されているオプション設定値の変更とカスタムメソッドの実装が必要です。
対象オプション
名前 |
型 |
初期値 |
説明 |
enableHeaderDate |
Boolean |
true |
ヘッダ部品に出力する時刻の表示形式を設定します。falseに設定するとユーザーが定義した形式の時刻が表示されます。 |
enableNowtime |
Boolean |
true |
現在日時の取得方法を設定します。falseに設定するとユーザーが実装した処理から現在日時を取得します。 |
enableRealtime |
Boolean |
true |
連動式のリアルタイム取得方法を設定します。falseに設定するとユーザーが実装した処理からリアルタイムを取得します。 |
disableViewURL |
Boolean |
true |
ViewURLにて表示するURLにパラメータを追加するか設定します。falseに設定するとユーザーが実装した処理からパラメータの取得、URLに追加をします。 |
オプション設定値変更の例
var Env =
{
・・・
// ヘッダ部品時刻表示設定(true:timelineのデフォルト処理, false:timeline外の処理)
enableHeaderDate : false,
// 現在日時取得設定(true:timelineのデフォルト処理, false:timeline外の処理)
enableNowtime : false,
// 連動式のリアルタイム取得設定(true:timelineのデフォルト処理, false:timeline外の処理)
enableRealtime : fale,
// ViewURL追加パラメータ設定(true:取得しない, false:timeline外から値を取得)
disableViewURL : false,
・・・
};
ユーザーカスタムデータ用メソッド
名前 |
型 |
戻り値 |
説明 |
customTimeString |
function |
Date |
ユーザーが実装した処理から日時と書式を設定し、ヘッダー部品に表示することができます。 |
appLatestTime |
function |
Date |
ユーザーが実装した処理で取得した値を現在日時、連動式のリアルタイム処理に渡すことができます。 |
customViewURL |
function |
String |
ユーザーが実装した処理で取得した値をViewURL処理で表示するURLの末尾に結合して表示することができます。 |
ユーザーカスタムデータ設定の例
document.addEventListener("DOMContentLoaded", () => {
const timeline = document.querySelector("k2go-timeline");
document.querySelector("k2go-timeline").addEventListener("setCustomData", () =>
{
document.querySelector("k2go-timeline").setCustom({
customTimeString: function(){ return /* ヘッダに表示する時刻 */ },
appLatestTime: function(){ return /* アプリの最新時刻 */ },
customViewURL: function(){ return /* ViewURLに追加する文字列 */ },
});
});
});
Timelineプラグインのスタイル変更
時間軸バー、ヘッダ部品、再生機能の背景色、文字色に対して、外部のCSSファイルからスタイルを変更することが可能です。
※カスタム要素、ShadowDOMに対するスタイル定義の方法は下記参照
カスタム要素に対するスタイル定義 例
// カスタム要素を指定したスタイル定義
k2go-timeline { position: fixed; bottom: 0px; height: 90px; width: 100%; background: linear-gradient(90deg, rgba(11, 14, 27, 1) 0%, rgba(27, 30, 43, 1) 5.9% }
// カスタム要素配下に存在するShadowDOMに対するスタイル定義
k2go-timeline::part(k2go-timeline-pick-knob) { background:#fff; }
k2go-timeline::part(k2go-timeline-pick-line) { background:#7da2cc; }
k2go-timeline::part(k2go-timeline-main) { position:absolute; left: 0px; bottom: 0px; width: 100%; height: 90px; background-color:rgba(27, 30, 43, 1) }