accordion
クリックでコンテンツの開閉を行うアコーディオンコンポーネント。trigger 内に .js-accordion-toggleOpen クラス付きの要素を置くと、開閉に応じてその要素すべてに is-open クラスが付け外しされる。
デフォルト
トリガーをクリックするとコンテンツが開閉する。js-accordion-toggleOpenを付与した要素に対して
-
アコーディオンのコンテンツがここに入ります。アコーディオンのコンテンツがここに入ります。アコーディオンのコンテンツがここに入ります。
コードを見る
<CAccordion>
<div slot="trigger">
<span>トリガーのテキスト</span>
<span class="js-accordion-toggleOpen">トリガーのアイコン</span>
</div>
<div slot="contents">
// コンテンツ
</div>
</CAccordion> onlyPC / onlySP — 表示デバイスを限定する
onlyPC を付けると、SP幅(768px未満)では常に開いた状態で表示されクリックできなくなる(onlySP はその逆でPCで常に開いた状態になる)。
-
SP幅ではクリックできず、常にこのコンテンツが表示された状態になります。
-
PC幅ではクリックできず、常にこのコンテンツが表示された状態になります。
コードを見る
<CAccordion onlyPC>
<div slot="trigger">
<span>PCのみ開閉可能</span>
<span class="js-accordion-toggleOpen">トリガーのアイコン</span>
</div>
<div slot="contents">
// コンテンツ
</div>
</CAccordion>
<CAccordion onlySP>
<div slot="trigger">
<span>SPのみ開閉可能</span>
<span class="js-accordion-toggleOpen">トリガーのアイコン</span>
</div>
<div slot="contents">
// コンテンツ
</div>
</CAccordion> initialHeight / initialHeightSP — 閉じた状態でも一部を見せる
閉じている状態でも、指定した高さ(rem)分だけコンテンツを表示したままにする。
-
このアコーディオンは initialHeight / initialHeightSP が指定されているため、閉じた状態でも先頭の数行が見えています。トリガーをクリックすると全文が表示され、再度クリックすると指定した高さまで戻ります。長い商品説明や利用規約など、全文を表示する前にプレビューを見せたい場合に便利なパターンです。
コードを見る
<CAccordion initialHeight={6} initialHeightSP={4}>
<div slot="trigger">
<span>続きを読む</span>
<span class="js-accordion-toggleOpen">トリガーのアイコン</span>
</div>
<div slot="contents">
// 長いコンテンツ
</div>
</CAccordion> openTxt — トリガーのテキストを開閉で切り替える
openTxt を指定すると、開いたときに trigger 内の .js-accordion-trigger-txt 要素のテキストが openTxt の値に置き換わり、閉じると元のテキストに戻る。
-
トリガーのテキストが「開く」から「閉じる」に切り替わります。
コードを見る
<CAccordion openTxt="閉じる">
<div slot="trigger">
<span class="js-accordion-trigger-txt">開く</span>
<span class="js-accordion-toggleOpen">トリガーのアイコン</span>
</div>
<div slot="contents">
// コンテンツ
</div>
</CAccordion> slideSpeed — 開閉のスピードを変更する
slideSpeed(ミリ秒)を指定すると、開閉時のスライドアニメーションの速度を変更できる。未指定の場合は200msになる。
コードを見る
<CAccordion slideSpeed={1000}>
<div slot="trigger">
<span>トリガーのテキスト</span>
<span class="js-accordion-toggleOpen">トリガーのアイコン</span>
</div>
<div slot="contents">
// コンテンツ
</div>
</CAccordion>