shadowトグルは、1つのオプションの状態を変更するスイッチです。押したり、スワイプしたりすることで、オン・オフを切り替えることができます。トグルは、checked
プロパティを設定することで、プログラムによってチェックすることも可能です。
トグルは、enableOnOffLabels
プロパティを設定することで、オン/オフラベルを有効にすることができます。これはアクセシビリティ上重要なことで、チェックされたトグルとチェックされていないトグルの区別がつきやすくなります。
アイテムとリストコンポーネントを使用すると、リストビューでトグルを使用することも可能です。
開発者は labelPlacement
プロパティを使用して、ラベルがどのように配置されるかを制御することができます。
開発者は justify
プロパティを使用して、ラベルとコントロールの行の詰め方を制御することができます。
CSSカスタムプロパティは、標準CSSと組み合わせてトグルの異なる部分をターゲットにすることができます。トグルの width
と height
を直接変更してトラックのサイズを変更し、--handle-width
と --handle-height
カスタムプロパティを使用して、ハンドルサイズをカスタマイズすることができます。
トグルをさらにカスタマイズするには、公開されている特定のシャドウ部分をターゲットにすることができます。これらの部分には、どのようなCSSプロパティでもスタイルを設定でき、CSSカスタムプロパティと組み合わせることも可能です。
Ionic 7.0では、よりシンプルなトグル構文が導入されました。この新しい構文は、トグルの設定に必要な定型文を減らし、アクセシビリティの問題を解決し、開発者のエクスペリエンスを向上させます。
開発者は従来の構文を使い続けることができますが、できるだけ早く移行することをお勧めします。
最新の構文を使用するには、ion-label
を削除して、ion-toggle
の内部にラベルを直接渡します。ラベルの配置は ion-toggle
の labelPlacement
プロパティを使用して設定することができる。ラベルとコントロールの行の詰め方は、ion-toggle
の justify
プロパティを使用して制御することができます。
- JavaScript
- Angular
- React
- Vue
<ion-item>
<ion-label>Notifications</ion-label>
<ion-toggle></ion-toggle>
</ion-item>
<ion-item>
<ion-toggle>Notifications</ion-toggle>
</ion-item>
<ion-item>
<ion-label position="fixed">Notifications</ion-label>
<ion-toggle></ion-toggle>
</ion-item>
<ion-item>
<ion-toggle label-placement="fixed">Notifications</ion-toggle>
</ion-item>
<ion-item>
<ion-label slot="end">Notifications</ion-label>
<ion-toggle></ion-toggle>
</ion-item>
<ion-item>
<ion-toggle label-placement="end">Notifications</ion-toggle>
</ion-item>
<ion-item>
<ion-label>Notifications</ion-label>
<ion-toggle></ion-toggle>
</ion-item>
<ion-item>
<ion-toggle>Notifications</ion-toggle>
</ion-item>
<ion-item>
<ion-label position="fixed">Notifications</ion-label>
<ion-toggle></ion-toggle>
</ion-item>
<ion-item>
<ion-toggle label-placement="fixed">Notifications</ion-toggle>
</ion-item>
<ion-item>
<ion-label slot="end">Notifications</ion-label>
<ion-toggle></ion-toggle>
</ion-item>
<ion-item>
<ion-toggle label-placement="end">Notifications</ion-toggle>
</ion-item>
{}
{}
<IonItem>
<IonLabel>Notifications</IonLabel>
<IonToggle></IonToggle>
</IonItem>
{}
<IonItem>
<IonToggle>Notifications</IonToggle>
</IonItem>
{}
{}
<IonItem>
<IonLabel position="fixed">Notifications</IonLabel>
<IonToggle></IonToggle>
</IonItem>
{}
<IonItem>
<IonToggle labelPlacement="fixed">Notifications</IonToggle>
</IonItem>
{}
{}
<IonItem>
<IonLabel slot="end">Notifications</IonLabel>
<IonToggle></IonToggle>
</IonItem>
{}
<IonItem>
<IonToggle labelPlacement="end">Notifications</IonToggle>
</IonItem>
<ion-item>
<ion-label>Notifications</ion-label>
<ion-toggle></ion-toggle>
</ion-item>
<ion-item>
<ion-toggle>Notifications</ion-toggle>
</ion-item>
<ion-item>
<ion-label position="fixed">Notifications</ion-label>
<ion-toggle></ion-toggle>
</ion-item>
<ion-item>
<ion-toggle label-placement="fixed">Notifications</ion-toggle>
</ion-item>
<ion-item>
<ion-label slot="end">Notifications</ion-label>
<ion-toggle></ion-toggle>
</ion-item>
<ion-item>
<ion-toggle label-placement="end">Notifications</ion-toggle>
</ion-item>
Ionic の過去のバージョンでは、ion-toggle
が正しく機能するためには ion-item
が必要でした。Ionic 7.0 からは、ion-toggle
は ion-item
の中で、そのアイテムが ion-list
に配置される場合にのみ使用されます。また、ion-toggle
が正しく機能するためには、ion-item
はもはや必須ではありません。
Ionicは、アプリが最新のトグル構文を使用しているかどうかを検出するためにヒューリスティックを使用しています。場合によっては、レガシー構文を使い続けることが望ましいこともあります。開発者は、ion-toggle
のlegacy
プロパティをtrue
に設定することで、そのトグルのインスタンスがレガシー構文を使用するように強制できます。
interface ToggleChangeEventDetail<T = any> {
value: T;
checked: boolean;
}
必須ではありませんが、このコンポーネントから発行される Ionic イベントでより強く型付けを行うために、CustomEvent
インターフェースの代わりにこのインターフェースを使用することが可能です。
interface ToggleCustomEvent<T = any> extends CustomEvent {
detail: ToggleChangeEventDetail<T>;
target: HTMLIonToggleElement;
}
Description | true の場合、トグルが選択されます。 |
Attribute | checked |
Type | boolean |
Default | false |
Description | The color to use from your application's color palette. Default options are: "primary" , "secondary" , "tertiary" , "success" , "warning" , "danger" , "light" , "medium" , and "dark" . For more information on colors, see theming. |
Attribute | color |
Type | "danger" | "dark" | "light" | "medium" | "primary" | "secondary" | "success" | "tertiary" | "warning" | string & Record<never, never> | undefined |
Default | undefined |
Description | true の場合、ユーザーはトグルを操作することができません。 |
Attribute | disabled |
Type | boolean |
Default | false |
Description | トグル内のオン/オフアクセシビリティスイッチラベルを有効にします。 |
Attribute | enable-on-off-labels |
Type | boolean | undefined |
Default | config.get('toggleOnOffLabels') |
Description | How to pack the label and toggle within a line. "start" : The label and toggle will appear on the left in LTR and on the right in RTL. "end" : The label and toggle will appear on the right in LTR and on the left in RTL. "space-between" : The label and toggle will appear on opposite ends of the line with space between the two elements. |
Attribute | justify |
Type | "end" | "space-between" | "start" |
Default | 'space-between' |
Description | Where to place the label relative to the input. "start" : The label will appear to the left of the toggle in LTR and to the right in RTL. "end" : The label will appear to the right of the toggle in LTR and to the left in RTL. "fixed" : The label has the same behavior as "start" except it also has a fixed width. Long text will be truncated with ellipses ("..."). |
Attribute | label-placement |
Type | "end" | "fixed" | "start" |
Default | 'start' |
Description | Set the legacy property to true to forcibly use the legacy form control markup. Ionic will only opt components in to the modern form markup when they are using either the aria-label attribute or the default slot that contains the label text. As a result, the legacy property should only be used as an escape hatch when you want to avoid this automatic opt-in behavior. Note that this property will be removed in an upcoming major release of Ionic, and all form components will be opted-in to using the modern form markup. |
Attribute | legacy |
Type | boolean | undefined |
Default | undefined |
Description | modeは、どのプラットフォームのスタイルを使用するかを決定します。 |
Attribute | mode |
Type | "ios" | "md" |
Default | undefined |
Description | フォームデータとともに送信されるコントロールの名前。 |
Attribute | name |
Type | string |
Default | this.inputId |
Description | The value of the toggle does not mean if it's checked or not, use the checked property for that.
The value of a toggle is analogous to the value of a <input type="checkbox"> , it's only used when the toggle participates in a native <form> . |
Attribute | value |
Type | null | string | undefined |
Default | 'on' |
Name | Description |
---|
ionBlur | トグルのフォーカスが外れたときに発行されます。 |
ionChange | Emitted when the user switches the toggle on or off. Does not emit when programmatically changing the value of the checked property. |
ionFocus | トグルにフォーカスが当たったときに発行されます。 |
No public methods available for this component.
Name | Description |
---|
handle | チェックした状態を変更するために使用するトグルハンドル(つまみ)です。 |
track | トグルの背景トラックです。 |
Name | Description |
---|
--border-radius | トグルトラックのボーダー半径 |
--handle-background | トグルハンドルの背景 |
--handle-background-checked | チェックしたときのトグルハンドルの背景 |
--handle-border-radius | トグルハンドルのボーダー半径 |
--handle-box-shadow | トグルハンドルのボックスシャドウ |
--handle-height | トグルハンドルの高さ |
--handle-max-height | トグルハンドルの最大の高さ |
--handle-spacing | トグルハンドル周辺の横方向の間隔 |
--handle-transition | トグルハンドルの変遷 |
--handle-width | トグルハンドルの幅 |
--track-background | Background of the toggle track |
--track-background-checked | Background of the toggle track when checked |
Name | Description |
---|
`` | The label text to associate with the toggle. Use the "labelPlacement" property to control where the label is placed relative to the toggle. |