Appドキュメント
概要
ULOCOはHTML要素を再生します。
使用方法はHTMLまたはJavaScriptの2種類あり、HTMLではHTML/CSSの簡単な知識でULOCOを使うことが可能です。
JavaScriptでは高度なカスタマイズ(エンディングや再生の汎用設定など)を行うことができます。
導入
読み込み
ULOCOタグをWebサイトに設置します。
ULOCOタグは次のようなHTMLコードです。
<link rel="stylesheet" href="https://APP_DOMAIN/api/v1/source/style.css?code=code" crossorigin="anonymous" media="print" onload="this.media='all'">
<script id="uloco-app" src="https://APP_DOMAIN/api/v1/source/app.js?code=code" crossorigin="anonymous"></script>
<script type="text/javascript">
uloco.addEvent("ready", function() {
uloco.init();
});
</script>
ULOCOタグにはWebサイトごとの固有の情報を含むため、管理画面から確認できるULOCOタグを適切な位置にコピー&ペーストしてください。
セットアップ
再生するHTML要素(再生対象要素)はWebサイト側でセットアップします。
HTML
スマートボタンをご利用ください。
<button class="uloco-smartbutton"
data-uloco-content-selector="セレクター">
スマートボタン
</button>
data-uloco-content-selector属性に再生対象要素のセレクターを指定することで、Webページの読み込み時に自動でセットアップします。
JavaScript
1. オブジェクトの生成
uloco.createContentメソッドで再生対象オブジェクトを生成します。
const content = uloco.createContent(target, options)
第一引数は再生対象のセレクターまたはDOMノード、第二引数は再生対象のオプションです。
オプションについては別途説明いたします。
2. オブジェクトの設定
uloco.setContentメソッドで再生対象オブジェクトを設定します。
uloco.setContent(content)
※ JavaScriptで設定した場合、再生、停止、再生等のイベントの呼び出しが必要です。
※『スマートボタン』及び『JavaScriptのセレクター指定』ではセレクターに一致する全ての要素が対象となります。
再生の開始・停止・再開
再生の開始・停止・再開の処理を設定します。
HTML
スマートボタンをご利用ください。
スマートボタンがクリックされると、再生状態に応じて再生・停止・再開などの適切な処理を実行します。
JavaScript
uloco.switchメソッドを任意のタイミングで呼び出します。
uloco.switch()
uloco.switchメソッドは再生状態に応じて再生・停止・再開などの適切な処理を実行します。
再生構成
ULOCOは再生対象要素の子ノード(HTML要素やテキスト)を1つずつ再生します。
再生の構成は次のとおりです。
1. 開始
ノードの再生を開始します。
2. マーカー
マーカーはノードへの注視スタイルの適用です。
ポインター及びハイライトのなどのスタイルがあります。
3. スクロール
スクロールは画面の自動スクロールです。
条件を満たした時にノードが画面内に表示されるようにスクロールします。
4. ナレーション
ナレーションはサウンド再生です。
ノードのテキストまたは音声ファイルを再生します。
5. スクロールビュー
スクロールビューはノードの全体表示です。
ノードの高さが画面に収まっていない場合や、次のノードまでに距離がある場合、一定のスピードでスクロールします。
6. 終了
ノードの再生を終了します。
再生動作
再生の動作(振る舞い)は機能設定及び再生設定を参照します。
設定をカスタマイズすることで、Webページに合わせた表現や動作を行うことが可能です。
なお、デフォルトは汎用的な設定になっております。
機能設定
機能設定はマーカーやスクロール、ナレーションなどの機能の設定です。
設定一覧
設定項目の値が『1/0』の場合、JavaScriptでは『true/false』となります。
| 設定項目 | プロパティ名 | 値 | デフォルト | 内容 | ||
|---|---|---|---|---|---|---|
| HTML | JavaScript | |||||
| プレイコンファーム | 有効/無効 | - | confirmation.enabled | 1/0 | 1 | プレイコンファームの有効・無効 |
| マーカー | 有効/無効 | - | marker.enabled | 1/0 | 1 | マーカーの有効・無効 |
| ハイライト | - | marker.highlight.enabled | 1/0 | 1 | マーカー/ハイライトの有効・無効 | |
| ポインター | - | marker.pointer.enabled | 1/0 | 1 | マーカー/ポインターの有効・無効 | |
| スクロール | 有効/無効 | - | scroller.enabled | 1/0 | 1 | スクロールの有効・無効(スクロールビューも対象です。) |
| スピード | - | scroller.scroll.speed | 数値 | 1 | スクロールのスピード | |
| 加速度 | - | scroller.scroll.acceleration | 数値 | 0.05 | スクロールの加減度 | |
| スクロールビュー/スピード | - | scroller.view.speed | 数値 | 1 | スクロールビューのスピード | |
| スクロールビュー/ボリューム | - | scroller.view.volume | 数値 | 0.9 | スクロールビューのスクロールボリューム | |
| 表示範囲/上部 | - | scroller.range.top | 0〜1.0 | 0.2 | スクロールの範囲(上側) | |
| 表示範囲/下部 | - | scroller.range.bottom | 0〜1.0 | 0.8 | スクロールの範囲(下側) | |
| ナレーション | 有効/無効 | - | narrator.enabled | 1/0 | 1 | ナレーションの有効・無効 |
| 倍速 | - | narrator.browser.rate | 数値 | 1.0 | ナレーション(合成音声)の倍速 | |
| 言語 | - | narrator.browser.lang | 言語コード | 'ja-JP' | ナレーション(合成音声)の言語 | |
| 種類(名称) | - | narrator.browser.name | 名称 | 'Kyoko' | ナレーション(合成音声)の種類(名称) | |
| 種類(番号) | - | narrator.browser.voice | 番号 | 0 | ナレーション(合成音声)の種類(番号)、種類(名称)が存在しない場合に使用されます。 | |
| 辞書 | - | narrator.dictionary | オブジェクト | - | ナレーションの読み上げ時の文章の読み方 | |
| ブラウザ別/倍速 | - | narrator.browser.{ブラウザ名}.rate | 数値 | (Safariのみ1.1) | ブラウザ別のナレーション(合成音声)の倍速 | |
| ブラウザ別/言語 | - | narrator.browser.{ブラウザ名}.lang | 言語コード | - | ブラウザ別のナレーション(合成音声)の言語 | |
| ブラウザ別/種類(名称) | - | narrator.browser.{ブラウザ名}.name | 名称 | - | ブラウザ別のナレーション(合成音声)の種類(名称) | |
| ブラウザ別/種類(番号) | - | narrator.browser.{ブラウザ名}.voice | 番号 | - | ブラウザ別のナレーション(合成音声)の種類(番号)、種類(名称)が存在しない場合に使用されます。 | |
※ ナレーションの種類はナレーションツールからご確認ください。
※ {ブラウザ名}は次のいずれかです。
Microsoft Edge → edge、Google Chrome → chrome、 Safari → safari、Firefox → firefox
カスタマイズ
HTML
この設定方法の実装は検討中であり、現在は使用できません。
簡単機能設定タグ
<input type="hidden" data-uloco-settings-{プロパティ}="値">
属性に設定項目を付与します。
{プロパティ}は設定項目のプロパティ名です。
例えばナレーションスピードを1.2倍にする場合は次のようになります。
<input class="uloco-smartsettings" type="hidden"
data-uloco-settings-narrator-browser-speed="1.2">
また、複数設定がある場合は、同じタグに属性を追加します。
<input class="uloco-smartsettings" type="hidden"
data-uloco-settings-{プロパティ名1}="値1"
data-uloco-settings-{プロパティ名2}="値2"
data-uloco-settings-{プロパティ名3}="値3">
JavaScript
uloco.settingsオブジェクトのプロパティを変更します。
uloco.settings.{プロパティ} = 値;
{プロパティ}は設定項目のプロパティ名です。
例えばナレーションスピードを1.2倍にする場合は次のようになります。
uloco.settings.narrator.browser.speed = 1.2;
再生設定
再生設定は各ノードの再生に関する設定です。
設定一覧
設定項目の値が『1/0』の場合、JavaScriptでは『true/false』となります。
| 設定項目 | プロパティ名 | 値 | 内容 | |
|---|---|---|---|---|
| 開始 | 遅延 | before-delay | 数値 | ノードの再生開始前の遅延時間 |
| マーカー | 有効・無効 | marker | 1/0 | マーカーの有効・無効 |
| ハイライト | marker-highlight | 1/0 | マーカーのハイライトの有無 | |
| ポインター | marker-pointer | 1/0 | マーカーのポインターの有無 | |
| 遅延 | marker-delay | 数値 | マーカー実行前の遅延時間 | |
| スクロール | 有効・無効 | scroll | 1/0 | スクロールの有効・無効 |
| モード | scroll-mode | required/outside | スクロールのモード | |
| 遅延 | scroll-delay | 数値 | スクロール実行前の遅延時間 | |
| ナレーション | 有効・無効 | narration | 1/0 | ナレーションの有効・無効 |
| テキスト(追加) | narration-text | 文字列 | ナレーションで読み上げる追加テキスト | |
| テキスト(代替) | narration-alttext | 文字列 | ナレーションで読み上げる代替テキスト | |
| 音声データ | narration-file | 音声データのURL | ナレーションで再生する音声データ | |
| 遅延 | narration-delay | 数値 | ナレーション実行前の遅延時間 | |
| スクロールビュー | 有効・無効 | scroll-view | 1/0 | スクロールビューの有効・無効 |
| 遅延 | scroll-view-delay | 数値 | スクロールビュー実行前の遅延時間 | |
| 終了 | 遅延 | after-delay | 数値 | ノードの再生終了後の遅延時間 |
| 制御 | 一括設定 | all | 1/0 | ノードのマーカー、スクロール、ナレーションの有効可否の一括設定 |
| グループ | group | 1/0 | ノードのグループ可否(この設定が1のノードは子ノードを含めたグループとなります。グループ内のノードはマーカー及びスクロールがグループにまとまります。) | |
| スキップ | skip | 1/0 | ノードのスキップ可否(この設定がが1のノードは再生されずスキップされます。) | |
| インナー | inner | 1/0 | ノードの子ノードの再生可否(この設定が0のノードの子ノードは再生されません。) | |
| イベント | event | 1/0 | ノードのイベント有効可否(この設定が0のノードはクリックによるジャンプイベントが起動しません。) | |
設定レベル
再生設定には再生対象要素レベルとノードレベルがあります。
再生対象要素レベル
再生対象要素レベルは再生対象内要素の全てのノードに適用される設定です。
ノードレベル
ノードレベルは特定のノードのみに適用される設定です。
レベル間で設定の重複がある場合は、『再生対象要素レベル < ノードレベル』の優先度で適用されます。
デフォルト
| 設定項目 | プロパティ | 再生対象要素レベル | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 全て | h1 | h2 | h3 | h4 | h5 | h6 | p | a | img | video | ol | ul | menu | table | input | textarea | select | button | |||
| 開始 | 遅延 | before-delay | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| マーカー | 有効・無効 | marker | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| 遅延 | marker-delay | 300ms | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
| ハイライト | marker-highlight | ● | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
| ポインター | marker-pointer | ● | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
| スクロール | 有効・無効 | scroll | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| モード | scroll-mode | outside | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
| 遅延 | scroll-delay | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
| ナレーション | 有効・無効 | narration | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| 遅延 | narration-delay | 300ms | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
| テキスト(追加) | narration-text | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
| テキスト(代替) | narration-alttext | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
| 音声データ | narration-file | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
| スクロールビュー | 有効・無効 | scroll-view | - | - | - | - | - | - | - | - | - | ● | - | - | - | - | - | - | - | - | - |
| 遅延 | scroll-view-delay | 1000ms | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
| 終了 | 遅延 | after-delay | 500ms | - | - | - | - | - | - | - | - | 1000ms | 1000ms | - | - | - | - | - | - | - | - |
| 制御 | 一括設定 | all | - | ● | ● | ● | ● | ● | ● | ● | ● | ● | ● | ● | ● | ● | ● | - | - | - | ● |
| グループ | group | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
| スキップ | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
| インナー | inner | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
| イベント | event | - | - | - | - | - | - | - | - | × | - | - | - | - | - | - | × | × | × | × | |
カスタマイズ
再生対象要素レベル
再生対象要素レベルのカスタマイズはJavaScriptのみです。
再生対象要素から再生コンテンツを生成する際に、設定を参照してノードを設定します。
JavaScript(再生対象要素レベル / デフォルト)
※ uloco.init()より前に記述します。
■ 全ノード
uloco.settings.content.node.propertiesオブジェクトに値を設定します。
uloco.settings.content.node.properties["プロパティ名"] = 値;
例えば、全てのノードの開始遅延を500msに設定する場合、次のようになります。
uloco.settings.content.node.properties["before-delay"] = 500;
■ セレクター別
uloco.settings.content.node.elementsオブジェクトにノードのセレクターとプロパティを追加します。
uloco.settings.content.node.elements["セレクター"] = {
"プロパティ名": 値,
};
例えば、クラス属性にplay-itemがあるノードのマーカー、スクロール、ナレーションを一括で有効にする場合、次のようになります。
uloco.settings.content.node.elements[".play-item"] = {
"all": true,
};
また、複数設定がある場合は、プロパティを追加します。
uloco.settings.content.node.elements[".play-item"] = {
"all": true,
"before-delay": 500,
"scroll-mode": "required"
};
uloco.settings.content.node.propertiesオブジェクトに設定した値は全ての再生コンテンツの生成時に適用されます。
個別に設定を行う場合は、再生コンテンツ生成時(uloco.setContent)にオプションとして設定を与えます。
JavaScript(再生対象要素レベル / 再生コンテンツ別)
再生対象オブジェクトの生成時の第二引数に設定値を与えることで、uloco.settings.content.node.propertiesオブジェクトの設定を上書きできます。
const options = {
node: {
"additions": {},
"exclusions": [],
"properties": {
"scroll": false,
"scroll-delay": 1000,
},
}
};
const content = uloco.createContent(target, options);
uloco.setContent(content);
■ 設定の追加
options.node.additionsに設定します。
設定方法は共通レベルのuloco.settings.content.node.elementsと同じです。
■ 設定の除外
options.node.exclusionsに設定します。
const options = {
node: {
"exclusions": [ "table", ".ex-item", "#ex-item" ],
}
};
options.node.exclusionsの各値はセレクターです。
■ ノード共通設定
options.node.propertiesに設定します。
設定方法は共通レベルのuloco.settings.content.node.propertiesと同じです。
ノードレベル
ノードレベルのカスタマイズはHTMLのみです。
HTML
HTML要素(タグ)に特定の属性を付与します。
<div data-uloco-node-{プロパティ}="値">Hello World!</div>
{プロパティ}は設定項目のプロパティ名です。
例えば、スクロールを有効にする場合は次のようになります。
<div data-uloco-node-scroll="1">Hello World!</div>
また、複数設定がある場合は、属性を追加します。
<div data-uloco-node-scroll="1"
data-uloco-node-scroll-mode="required"
data-uloco-node-scroll-delay="500">
Hello World!
</div>
スタイル
主要クラス
ULOCOの主なHTML要素のクラスは次のとおりです。
| 要素 | クラス | 説明 |
|---|---|---|
| スマートボタン | uloco-smartbutton |
スマートボタンのクラス |
| マーカー(ポインター) | uloco-marker-pointer |
マーカー(ポインター)のクラス |
| マーカー(ハイライト) | uloco-marker-highlight |
マーカー(ハイライト)のクラス |
カスタマイズ
スタイルをカスタマイズするには、ULOCOタグ(スタイル)の読み込みよりも後に、CSSなどによってスタイルを上書きしてください。
高度なカスタマイズ
高度なカスタマイズはJavaScriptのみです。
再生
JavaScript
uloco.play()
停止
JavaScript
uloco.pause()
再開
JavaScript
uloco.resume()
ジャンプ
JavaScript
再生対象オブジェクトとプレイヤーオブジェクトのjumpメソッドを使用します。
// contentはuloco.createContentによって生成されるオブジェクトです。
let target = document.querySelectorAll('ジャンプ対象のセレクター')
content.position(target);
uloco.jump(content);
エンディング
JavaScript
■ 共通
uloco.settings.content.ending.delay = 遅延時間;
uloco.settings.content.ending.text = "ナレーションテキスト";
uloco.settings.content.ending.file = "ナレーションデータ";
uloco.settings.content.ending.handler = 関数;
■ 再生対象別
再生対象オブジェクトの生成時の第二引数に設定値を追加します。
const options = {
ending: {
delay: 遅延時間,
text: "ナレーションテキスト",
file: "ナレーションデータ",
handler: 関数
}
}
const content = uloco.createContent(target, options);
uloco.setContent(content);
コンバージョンの記録
JavaScript
uloco.recordConvert({ key: コンバージョン名 });
コンバージョン名には任意の文字列を与えられます。
非対応環境
非対応環境(非対応ブラウザなど)でULOCOが読み込まれた場合のコールバック関数を設定できます。
JavaScript
再生対象オブジェクトの生成時の第二引数に設定を与えます。
uloco.addEvent("unsupported", function() {
// 非対応環境時の処理
alert("このブラウザは自動再生に対応していません。");
});