TECH BLOG

マークリープス技術ブログ

open

details、summaryタグ+jQueryでスムーズに開閉するアコーディオンの実装

以前の記事で、detailsとsummaryタグを使ったアコーディオン(開閉)の作り方を紹介しました。
その際に、htmlとcssだけではアニメーションの処理が不完全だった為、jQueryを追加してスムーズに開閉するアコーディオンをご紹介します。
※jQueryが効かない環境でも、details と summary の元々の開閉機能が動作する仕様となっています。

html

css

 
●初期状態
・.content クラスの要素(回答部分)は、visibility: hidden と opacity: 0 で初期状態では隠れています。
 表示されていないものの、HTML構造上には存在しています。

●開いたときのアニメーション
・details 要素が open 属性を持つと、その中の .content 要素は visibility: visible と opacity: 1 に変更され、徐々に表示されます。
・transition: opacity 0.3s ease, visibility 0s linear 0.3s; によって、opacity が0から1に変わるアニメーションが 0.3秒 でスムーズに実行されます。
 また、visibility の変更は、opacity が完了した後に遅れて行われます。

jQuery

 
・jQuery側では、open 属性の追加と削除によって、CSSアニメーションの開始と終了を管理しています。

DEMO

See the Pen
details、summaryタグ+jQueryでスムーズに開閉するアコーディオンの実装
by mkl may (@mkl-may)
on CodePen.

よく読まれている関連記事

関連最新記事