ページ内のアンカーリンク(href="#article")をクリックすると
[id="article"]に移動し、アコーディオンが開くという動きを実装したいです。
(アコーディオンが先でもアンカーが先でも大丈夫です!)
アコーディオン部分はアンカーでも開くし、アコーディオン自体のクリックでも開くようにしたいです。
開閉をわかりやすくしたのでアコーディオン右には画像で+/-もつけています。
ページ内に他にもアンカーリンクを利用するため
ユニークな記述をお願いします。
下記の記述でアコーディオンだけの開閉は問題ありませんが
アンカーを押してもアコーディオンが開きませんでした。
どこの記述が問題ありますでしょうか。。
html
<div class="fee_inner01"> <div class="fee_article_top"> <ul> <li>*1<a href="#article" id="article-anc_01" class="fee_article_btn">見出し01</a></li> <li>*2 <a href="#article" id="article-anc_02" class="fee_article_btn">見出し02</a></li> <li>*3 <a href="#article" id="article-anc_03" class="fee_article_btn">見出し03</a></li> </ul> </div> <div class="fee_article fee_article mgb-20"> <div class="fee_article_title ac_btn" id="article">注意事項</div> <div class="accordion_in"> <p>*1 テキストが入ります</p> <p>*2 テキストが入ります</p> <p>*3 テキストが入ります</p> </div> </div> </div>
css
.fee_article_top ul { padding: 12px; margin: 15px 0 20px; position: relative; } .fee_article_in { padding: 0 5% 20px; } .ac_btn { position: relative; } .ac_btn::after { content: ""; display: inline-block; width: 18px; height: 18px; background: url(../images/ac_plus.png) no-repeat; background-size: 18px; position: absolute; right: 20px; top: 16px; } .ac_btn.open::after { content: ""; display: inline-block; width: 18px; height: 18px; background: url(../images/ac_minus.png) no-repeat; background-size: 18px; position: absolute; right: 20px; top: 16px; }
js
$(function () { $(".fee_article_title").click(function () { $(this).toggleClass("open").next().slideToggle("normal"); }); }); $(function () { $('.fee_article_in').css("display", "none"); $('.fee_inner01 a[href^="#"]').click(function () { $(".fee_article_title").addClass("open"); $(".fee_article_in").css("display", "block"); var speed02 = 500; var href02 = $(this).attr("href"); var target02 = $(href02 == "#" || href02 == "" ? 'html' : href02); var position02 = target02.offset().top; $("html, body").animate({ scrollTop: position02 }, speed02, "swing"); return false; }); });
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/24 12:35