トグル
トグルレイアウト
レイアウトはとてもシンプルです。
<!-- トグル要素 -->
<label class="toggle">
<!-- トグルの入力 -->
<input type="checkbox" />
<!-- トグルアイコン -->
<span class="toggle-icon"></span>
</label>
シンプルなリストの内側。
<div class="list simple-list">
<ul>
...
<li>
<span>Text label</span>
<label class="toggle">
<input type="checkbox" />
<span class="toggle-icon"></span>
</label>
</li>
</ul>
</div>
通常のリストの中(item-after
の中が望ましい)。
<div class="list">
<ul>
...
<li class="item-content">
<div class="item-inner">
<div class="item-title">Text label</div>
<div class="item-after">
<label class="toggle">
<input type="checkbox" />
<span class="toggle-icon"></span>
</label>
</div>
</div>
</li>
</ul>
</div>
トグルの色
トグルはすべてのデフォルトカラーをサポートしています。そのため、色を変更するには、toggle 要素に color-[color] クラスを追加します。
<!-- 赤色のトグル -->
<label class="toggle color-red">...</label>
<!-- オレンジのトグル -->
<label class="toggle color-orange">...</label>
トグルアプリのメソッド
ここでは、Toggle を扱う App の関連メソッドを見てみましょう。
app.toggle.create(parameters)- Toggleインスタンスの作成
- parameters - object. toggleのパラメータを持つオブジェクト
作成されたToggleのインスタンスを返すメソッド
app.toggle.destroy(el)- トグルのインスタンスを破棄する
- el - HTMLElementまたはstring (CSSセレクタ付き)またはobject。Toggle要素またはToggleインスタンスを破棄します。
app.toggle.get(el)- HTML要素によるToggleインスタンスの取得
- el - HTMLElement または string (CSSセレクタを使用)。Toggleの要素です。
メソッドはToggleのインスタンスを返します。
トグルのパラメータ
ここでは、Toggleを作成するために必要なパラメータの一覧を見てみましょう。
Parameter | Type | Default | Description |
---|---|---|---|
el | HTMLElement string | トグルの要素。HTML要素またはトグル要素のCSSセレクタを含む文字列 | |
on | object | イベントハンドラーを持つオブジェクト。例えば、以下のようになります。
|
トグルのメソッドとプロパティ
トグルを作成するには、メソッドを呼び出す必要があります。
var toggle = app.toggle.create({ /* parameters */ })
その後、初期化されたインスタンス(上記の例では toggle
という変数)に、便利なメソッドやプロパティを設定します。
Properties | |
---|---|
toggle.app | グローバルアプリのインスタンスへのリンク |
toggle.el | トグル HTML 要素 |
toggle.$el | トグル HTML 要素を持つ Dom7 インスタンス |
toggle.inputEl | トグル入力のHTML要素 |
toggle.$inputEl | toggle input HTML要素を持つDom7のインスタンス |
toggle.checked | 入力がチェックされているかどうかを示すブール値のプロパティ |
toggle.params | トグルパラメータ |
Methods | |
toggle.toggle() | 入力状態のトグル |
toggle.on(event, handler) | イベントハンドラの追加 |
toggle.once(event, handler) | 発射後に削除されるイベントハンドラの追加 |
toggle.off(event, handler) | イベントハンドラの削除 |
toggle.off(event) | 指定されたイベントのハンドラをすべて削除する |
toggle.emit(event, ...args) | インスタンスでのイベント発生 |
トグルのイベント
Toggle は、toggle 要素に対する以下の DOM イベントと、app および toggle インスタンスに対するイベントを発生させます。
DOM イベント
Event | Target | Description |
---|---|---|
toggle:change | Toggle Element<div class="toggle"> | イベントは、Toggle の状態が変更されたときに発生します。 |
toggle:beforedestroy | Toggle Element<div class="toggle"> | イベントは、Toggle インスタンスが破棄される直前にトリガーされます。 |
アプリとトグルインスタンスのイベント
Toggle インスタンスは、self インスタンスと app インスタンスの両方でイベントを発行します。アプリのインスタンスのイベントは、同じ名前でプレフィックスが toggle
となっています。
Event | Arguments | Target | Description |
---|---|---|---|
change | toggle | toggle | イベントは、トグルの状態が変更されたときにトリガーされます。イベントハンドラは引数として toggle インスタンスを受け取ります。 |
toggleChange | toggle | app | |
beforeDestroy | toggle | toggle | イベントはトグルインスタンスが破壊される直前に発生します。イベントハンドラは toggle インスタンスを引数として受け取ります。 |
toggleBeforeDestroy | toggle | app |
トグルの自動初期化
トグル API を使用する必要がなく、トグルがページ内にあり、ページの初期化時に DOM に表示される場合は、追加の toggle-init
クラスを追加するだけで、自動的に初期化することができます。
<!-- toggle-init クラスの追加 -->
<label class="toggle toggle-init">
<input type="checkbox" />
<span class="toggle-icon"></span>
</label>
この場合、生成されたトグルのインスタンスにアクセスする必要がある場合は、app.toggle.get
アプリメソッドを使用します。
var toggle = app.toggle.get('.toggle');
if (toggle.checked) {
// 何かをする
}
CSS Variables
Below is the list of related CSS variables (CSS custom properties).
:root {
--f7-toggle-handle-color: #fff;
}
:root .theme-dark,
:root.theme-dark {
--f7-toggle-inactive-color: #555;
}
.ios {
--f7-toggle-width: 52px;
--f7-toggle-height: 32px;
--f7-toggle-border-color: #e5e5e5;
--f7-toggle-inactive-color: #fff;
}
.ios .theme-dark,
.ios.theme-dark {
--f7-toggle-border-color: #555;
}
.md {
--f7-toggle-width: 36px;
--f7-toggle-height: 14px;
--f7-toggle-inactive-color: #b0afaf;
}
.aurora {
--f7-toggle-width: 40px;
--f7-toggle-height: 20px;
--f7-toggle-inactive-color: #aaa;
}
Examples
<div class="page">
<div class="navbar">
<div class="navbar-bg"></div>
<div class="navbar-inner">
<div class="title">Toggle</div>
</div>
</div>
<div class="page-content">
<div class="block-title">Super Heroes</div>
<div class="list simple-list">
<ul>
<li>
<span>Batman</span>
<label class="toggle toggle-init color-black">
<input type="checkbox" checked />
<span class="toggle-icon"></span>
</label>
</li>
<li>
<span>Aquaman</span>
<label class="toggle toggle-init color-blue">
<input type="checkbox" checked />
<span class="toggle-icon"></span>
</label>
</li>
<li>
<span>Superman</span>
<label class="toggle toggle-init color-red">
<input type="checkbox" checked />
<span class="toggle-icon"></span>
</label>
</li>
<li>
<span>Hulk</span>
<label class="toggle toggle-init color-green">
<input type="checkbox" />
<span class="toggle-icon"></span>
</label>
</li>
<li>
<span>Spiderman (Disabled)</span>
<label class="toggle toggle-init disabled">
<input type="checkbox" />
<span class="toggle-icon"></span>
</label>
</li>
<li>
<span>Ironman (Disabled)</span>
<label class="toggle toggle-init toggle-init">
<input type="checkbox" checked disabled />
<span class="toggle-icon"></span>
</label>
</li>
<li>
<span>Thor</span>
<label class="toggle toggle-init color-orange">
<input type="checkbox" checked />
<span class="toggle-icon"></span>
</label>
</li>
<li>
<span>Wonder Woman</span>
<label class="toggle toggle-init color-pink">
<input type="checkbox" />
<span class="toggle-icon"></span>
</label>
</li>
</ul>
</div>
</div>
</div>