2026/06/19
「もっと見る」ボタンで記事一覧を3件ずつ表示する方法【HTML・CSS・JavaScript】
ブログの記事一覧やお知らせページでよく見かける「もっと見る」機能。
記事を最初からすべて表示してしまうとページが長くなり、ユーザーが目的の記事を探しにくくなることがあります。そんなときに便利なのが、ボタンをクリックするたびに記事を少しずつ表示する仕組みです。
この記事では、HTML・CSS・JavaScriptだけで実装できる「もっと見る」機能を紹介します。
目次
完成イメージ
今回作成するレイアウトは、カード形式の記事一覧です。
- カードデザインで見やすいレイアウト
- レスポンシブ対応
- 「もっと見る」を押すたびに3件ずつ表示
- 記事数が増えてもHTMLを追加するだけ(CMSの自動出力にも対応)
See the Pen
もっと見るボタン by qam (@qam)
on CodePen.
HTML
記事カードを一覧表示するためのHTMLです。
各記事は.cardクラスで管理し、JavaScriptによって表示・非表示を切り替えます。
<section class="articles">
<div class="card">
<img src="サムネイル画像のパス" alt="">
<div class="card-content">
<h3>記事タイトル1</h3>
<p>記事の説明文が入ります。記事の概要を表示します。</p>
</div>
</div>
</section>
<div class="button-area">
<button id="loadMore">もっと見る</button>
</div>
CSS
続いてCSSです。
シャドウ付きのカードや、ホバー時に少し浮き上がるアニメーション、Gridによるレスポンシブレイアウトなど比較的シンプルなカードデザインで実装しています。
.articles{
max-width:1200px;
margin:auto;
display:grid;
grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
gap:30px;
}
.card{
display:none;
background:#fff;
border-radius:10px;
overflow:hidden;
box-shadow:0 5px 15px rgba(0,0,0,.1);
transition:.3s;
}
.card:hover{
transform:translateY(-5px);
}
.card img{
width:100%;
display:block;
}
.card-content{
padding:20px;
}
.card-content h3{
margin-bottom:10px;
font-size:22px;
}
.card-content p{
color:#666;
line-height:1.8;
}
.button-area{
text-align:center;
margin-top:50px;
}
#loadMore{
padding:15px 50px;
border:none;
background:#333;
color:#fff;
font-size:16px;
border-radius:50px;
cursor:pointer;
transition:.3s;
}
#loadMore:hover{
background:#555;
}
JavaScript
最後にJavaScriptです。
今回のポイントは、「現在何件表示するか」を変数で管理することです。初期状態では3件だけ表示し、ボタンを押すたびに3件ずつ追加表示します。
const cards = document.querySelectorAll(".card");
const loadMoreBtn = document.getElementById("loadMore");
let visibleCount = 3;
// 初期表示
showCards();
function showCards(){
cards.forEach((card,index)=>{
if(index < visibleCount){
card.style.display = "block";
}
});
if(visibleCount >= cards.length){
loadMoreBtn.style.display = "none";
}
}
// ボタンクリック
loadMoreBtn.addEventListener("click",()=>{
visibleCount += 3;
showCards();
});
表示件数を管理する
最初に表示する件数を変数で設定します。
let visibleCount = 3;
この数字が現在表示される記事数になります。
表示処理を実行する
カードを順番にチェックし、表示件数以内の記事だけ表示します。
if(index < visibleCount){
card.style.display = "block";
}
「もっと見る」で3件追加
ボタンがクリックされるたびに表示件数を増やします。
visibleCount += 3;
その後、表示処理を再実行することで新しい記事が追加表示されます。
最後まで表示したらボタンを非表示
すべての記事が表示されたら「もっと見る」ボタンは不要になるため、次のような処理を追加します。
if(visibleCount >= cards.length){
loadMoreBtn.style.display = "none";
}
これにより、最後まで表示した時点でボタンが自動的に消え、ユーザーにとって分かりやすいUIになります。
カスタマイズ例
4件ずつ表示したい場合
let visibleCount = 4; visibleCount += 4;
6件ずつ表示したい場合
let visibleCount = 6; visibleCount += 6;
まとめ
今回は、HTML・CSS・JavaScriptだけで実装できる「もっと見る」機能を紹介しました。
ライブラリを使わずに実装できるため、ブログの記事一覧、実績紹介、商品一覧、ポートフォリオなど、さまざまな場面で活用できます。少ないコードで使い回しやすく、初心者にもおすすめの実装方法です。
コーディング業務のご依頼、ご相談の詳細についてはこちらから
最後までお読みいただき、ありがとうございました。
よろしければシェアしていただければ幸いです。
| 前の記事へ |
WEB業界ならqam!qam(カム)はWEB業界で働く人や興味がある人に役立つ情報サイトです。
マーケティングやデザイン、マークアップ(コーディング)、プログラム、トレンドなどの情報をqamライター陣が執筆。噛めば噛むほど(読めば読むほど)制作・開発や運営・運用、業界知識やノウハウを学ぶことができます。




