jQuery
を使用してアコーディオンを作成しようとしています。私のコードは以下で共有しています。このアコーディオンで 画面の上に要素を配置する
$(document).ready(function() {
$('#initial .section-content').slideDown();
$('h2').click(function() {
$('.section-content').slideUp();
$(this).siblings('.section-content').slideDown();
});
})
.section-content {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="initial">
<h2>Section 1</h2>
<p class="section-content">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac purus at urna ultrices placerat in a ipsum. Nullam tincidunt tortor quis nibh feugiat, id finibus nisl rutrum. Donec cursus ligula quam, sit amet mollis elit hendrerit quis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut sed massa tellus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac purus at urna ultrices placerat in a ipsum. Nullam tincidunt tortor quis nibh feugiat, id finibus nisl rutrum. Donec cursus ligula quam, sit amet mollis elit hendrerit quis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut sed massa tellus.
</p>
</div>
<div>
<h2>Section 2</h2>
<p class="section-content">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac purus at urna ultrices placerat in a ipsum. Nullam tincidunt tortor quis nibh feugiat, id finibus nisl rutrum. Donec cursus ligula quam, sit amet mollis elit hendrerit quis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut sed massa tellus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac purus at urna ultrices placerat in a ipsum. Nullam tincidunt tortor quis nibh feugiat, id finibus nisl rutrum. Donec cursus ligula quam, sit amet mollis elit hendrerit quis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut sed massa tellus.
</p>
</div>
<div>
<h2>Section 3</h2>
<p class="section-content">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac purus at urna ultrices placerat in a ipsum. Nullam tincidunt tortor quis nibh feugiat, id finibus nisl rutrum. Donec cursus ligula quam, sit amet mollis elit hendrerit quis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut sed massa tellus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac purus at urna ultrices placerat in a ipsum. Nullam tincidunt tortor quis nibh feugiat, id finibus nisl rutrum. Donec cursus ligula quam, sit amet mollis elit hendrerit quis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut sed massa tellus.
</p>
</div>
<div>
<h2>Section 4</h2>
<p class="section-content">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac purus at urna ultrices placerat in a ipsum. Nullam tincidunt tortor quis nibh feugiat, id finibus nisl rutrum. Donec cursus ligula quam, sit amet mollis elit hendrerit quis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut sed massa tellus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac purus at urna ultrices placerat in a ipsum. Nullam tincidunt tortor quis nibh feugiat, id finibus nisl rutrum. Donec cursus ligula quam, sit amet mollis elit hendrerit quis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut sed massa tellus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac purus at urna ultrices placerat in a ipsum. Nullam tincidunt tortor quis nibh feugiat, id finibus nisl rutrum. Donec cursus ligula quam, sit amet mollis elit hendrerit quis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut sed massa tellus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac purus at urna ultrices placerat in a ipsum. Nullam tincidunt tortor quis nibh feugiat, id finibus nisl rutrum. Donec cursus ligula quam, sit amet mollis elit hendrerit quis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut sed massa tellus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac purus at urna ultrices placerat in a ipsum. Nullam tincidunt tortor quis nibh feugiat, id finibus nisl rutrum. Donec cursus ligula quam, sit amet mollis elit hendrerit quis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut sed massa tellus.
</p>
</div>
このアコーディオンにさらに機能を追加したいと思います。見出しをクリックすると、対応するコンテンツが展開されます。その後、私はクリックした見出しが画面の上に現れるようにウィンドウをスクロールしたい。この機能を実装するにはどうすればよいですか?
さて、jQuery UIのアコーディオンウィジェットをご覧ください:https://jqueryui.com/accordion/ これは、あなたがすぐに使いたいすべての機能を備えています。スクロールを行うことができるアニメーションが完了したときの組み込みのコールバック。あなたがすでに達成したものと比較して大きな違いはなく、あなたのプロジェクトに別の図書館を含める必要がありますが、とにかくあなたを探してみる価値があります:) – EmKay
@EmKay。アコーディオンにはすでに実装した機能があります。しかし、それはスクロール機能が不足しています。 – niyasc