パーツ番号 03-09-12 ・ JavaScript使用
スクロール連動で折りたたまれるサイドバー
右側の本文をスクロールすると左のサイドバーが自動的にアイコンのみのミニ表示へ折りたたまれます。WordPressの記事ページで本文閲覧の妨げにならないナビゲーションに便利です。
プレビュー
ソースコード
HTML
<div class="d03-09-12-stage">
<aside class="d03-09-12-side">
<div class="d03-09-12-logo">SITE</div>
<nav>
<a href="#" onclick="return false" class="active"><i></i><b>ホーム</b></a>
<a href="#" onclick="return false"><i></i><b>特集記事</b></a>
<a href="#" onclick="return false"><i></i><b>ランキング</b></a>
<a href="#" onclick="return false"><i></i><b>お問い合わせ</b></a>
</nav>
</aside>
<main class="d03-09-12-main">
<p class="d03-09-12-hint">本文を下にスクロール<br>↓</p>
<div class="d03-09-12-card"></div>
<div class="d03-09-12-card"></div>
<div class="d03-09-12-card"></div>
<div class="d03-09-12-card"></div>
</main>
</div>CSS
.prev.d03-09-12{padding:0;display:block}
.d03-09-12-stage{position:relative;display:flex;width:100%;height:100%;min-height:260px;overflow:hidden;background:#fff}
.d03-09-12-side{position:relative;width:158px;flex:none;background:#0f172a;padding:16px 12px;transition:width .3s ease;overflow:hidden;display:flex;flex-direction:column;gap:14px}
.d03-09-12-stage.scrolled .d03-09-12-side{width:52px}
.d03-09-12-logo{font-weight:800;font-size:12px;letter-spacing:.1em;color:#38bdf8;white-space:nowrap}
.d03-09-12-side nav{display:flex;flex-direction:column;gap:4px}
.d03-09-12-side a{display:flex;align-items:center;gap:10px;text-decoration:none;padding:9px 8px;border-radius:8px;color:#cbd5e1;white-space:nowrap}
.d03-09-12-side a.active{background:#2563eb;color:#fff}
.d03-09-12-side i{flex:none;width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.85}
.d03-09-12-side b{font-size:12px;font-weight:600;opacity:1;transition:opacity .2s ease}
.d03-09-12-stage.scrolled .d03-09-12-side b{opacity:0}
.d03-09-12-main{flex:1;min-width:0;overflow-y:auto;padding:16px;background:#f8fafc}
.d03-09-12-hint{margin:0 0 12px;font-size:11.5px;color:#94a3b8;text-align:center}
.d03-09-12-card{height:70px;border-radius:10px;margin-bottom:10px;background:linear-gradient(135deg,#e2e8f0,#cbd5e1)}JavaScript
(function(){
var root=document.getElementById('item-03-09-12');
if(!root)return;
var stage=root.querySelector('.d03-09-12-stage');
if(!stage)return;
var main=stage.querySelector('.d03-09-12-main');
if(!main)return;
main.addEventListener('scroll',function(){
if(main.scrollTop>20){
stage.classList.add('scrolled');
}else{
stage.classList.remove('scrolled');
}
});
})();クラス名 .d03-09-12 は本ライブラリ内での識別用です。複数のパーツを同じページで使う場合は、重複しないよう名前を変更してください。