【アコーディオンメニュー】を作成しています。
やりたいこと
クリックしたら<dd>が出るのと同時に、擬似要素の矢印の角度も変えたいと思っています。
dt::after{
content: "\f107";
font-family: "Font Awesome 5 Free";
font-weight: 900;
font-size: 32px;
position: absolute;
right:32px;
}
矢印はFontAwesomeでアイコンを入れていますので、この角度を反転させる用に
.action-deg{
transform: rotate(-180deg);
}
を入れてクリックイベントで動かそうとしています。
が擬似要素(dt::after)をセレクターとして指定する方法がわかりません、というよりそんな方法はない?
のかなと思ったので代替案があれば助かります。
よろしくお願いいたします。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="style.css"> </head> <body> <dl class="accorion-menu"> <dt>メニュー1</dt> <dd> ここに文章が入ります。ここに文章が入ります。 ここに文章が入ります。ここに文章が入ります。 ここに文章が入ります。ここに文章が入ります。 ここに文章が入ります。ここに文章が入ります。 ここに文章が入ります。ここに文章が入ります。 ここに文章が入ります。ここに文章が入ります。 </dd> <dt>メニュー2</dt> <dd> ここに文章が入ります。ここに文章が入ります。 ここに文章が入ります。ここに文章が入ります。 ここに文章が入ります。ここに文章が入ります。 ここに文章が入ります。ここに文章が入ります。 ここに文章が入ります。ここに文章が入ります。 ここに文章が入ります。ここに文章が入ります。 </dd> <dt>メニュー3</dt> <dd> ここに文章が入ります。ここに文章が入ります。 ここに文章が入ります。ここに文章が入ります。 ここに文章が入ります。ここに文章が入ります。 ここに文章が入ります。ここに文章が入ります。 ここに文章が入ります。ここに文章が入ります。 ここに文章が入ります。ここに文章が入ります。 </dd> </dl> <!-- FontAwesome --> <script src="https://kit.fontawesome.com/c4b97a70eb.js" crossorigin="anonymous"></script> <!-- jQUely --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <!-- js --> <script src="script.js"></script> </body> </html> コード
@charset "utf-8"; .accorion-menu{ width: 1000px; margin: 40px auto 40px; } dt{ height: 48px; background-color: #f9f9f9; display: flex; align-items: center; padding-left: 32px; padding-right: 32px; font-weight: bold; position: relative; } dt::after{ content: "\f107"; font-family: "Font Awesome 5 Free"; font-weight: 900; font-size: 32px; position: absolute; right:32px; } .action-deg{ transform: rotate(-180deg); } dd{ width: 940px; margin: 16px auto 16px; display: none; } コード
$(function(){ $(function(){ $(".accorion-menu dt").on("click", function() { $(this).next().slideToggle(); }); }); }); コード
回答1件
あなたの回答
tips
プレビュー