javascript にほとんど頼らず css だけで滑らかなアコーディオンを作る

CSS
もち
もち

jsのプロパティ scrollHeight を使って、JQueryなしで滑らかなスクロールにしてみようと色々やってみたのですが、自力でやるのは無理そうだなと思い調べたら、jsを使わない滑らかなアコーディオンを作る方法を見つけたので備忘録として残しておきます。

ブックマーク登録しても、ブックマークしたサイトが多くなってきてしまったので、どこにあるのか探すのが面倒になってしまったので(笑)

滑らかに動くアコーディオン

See the Pen Untitled by mothihuku (@mothi002) on CodePen.

上のデザインはしょーごさんの販売されている、中級課題のよくある質問部分のアコーディオンです。

もうすでに一度作ったことのあるものですが、コーディングのスピードが遅すぎるため、練習としてもう一度やっていました。

1回目の挑戦の時の備忘録の記事です。

もしよければ見てみてください。

しょーごさんの中級課題についてはこちらをどうぞ!

本題から外れてすみません。

滑らかな動きを実現するために、heightではなくline-heightを使い、あとopacityとpaddingを使っています。

transitionは、height 0px => auto のようなautoを使った変化をする時は機能してくれません。

なので、その代わりにline-height 0 => 1.5 のような指定をすることで、滑らかな動きになるようにしています。

opaticyを指定したのは、閉じている最中にline-heightが0になることで、文字がゴチャついてしまい、一瞬とはいえ、あまり見栄えが良くないなと思ったからです。

効果としては、多少マシになるくらいですが。。。

以上になります。

タイトルとURLをコピーしました