← 動的パーツギャラリーへ戻る

パーツ番号 01-13-02 ・ JavaScript使用

上下2分割スライド切替コンテンツ

画面を上下に分割し、ボタン操作で両パネルの中身が上下にスライドして入れ替わります。キャンペーン訴求やお知らせの切り替えに向いています。

js

プレビュー

ソースコード

HTML

<div class="d01-13-02-wrap">
          <div class="d01-13-02-half d01-13-02-top">
            <div class="d01-13-02-track">
              <div class="d01-13-02-slide" style="background:linear-gradient(135deg,#f97316,#ea580c)"><span>SPRING SALE</span></div>
              <div class="d01-13-02-slide" style="background:linear-gradient(135deg,#0ea5e9,#0369a1)"><span>SUMMER SALE</span></div>
            </div>
          </div>
          <div class="d01-13-02-half d01-13-02-bottom">
            <div class="d01-13-02-track d01-13-02-track-b">
              <div class="d01-13-02-slide" style="background:linear-gradient(135deg,#0369a1,#0ea5e9)"><span>詳しくはこちら</span></div>
              <div class="d01-13-02-slide" style="background:linear-gradient(135deg,#ea580c,#f97316)"><span>詳しくはこちら</span></div>
            </div>
          </div>
          <button type="button" class="d01-13-02-btn">切り替える</button>
        </div>

CSS

.prev.d01-13-02{padding:0}
        .d01-13-02-wrap{position:relative;width:100%;height:230px;display:flex;flex-direction:column}
        .d01-13-02-half{flex:1;overflow:hidden;position:relative}
        .d01-13-02-track{height:200%;transition:transform .5s cubic-bezier(.2,.7,.3,1)}
        .d01-13-02-top .d01-13-02-track.d01-13-02-on{transform:translateY(-50%)}
        .d01-13-02-bottom .d01-13-02-track{transform:translateY(-50%)}
        .d01-13-02-bottom .d01-13-02-track.d01-13-02-on{transform:translateY(0)}
        .d01-13-02-slide{height:50%;display:flex;align-items:center;justify-content:center}
        .d01-13-02-slide span{color:#fff;font-weight:800;font-size:13px;letter-spacing:.05em}
        .d01-13-02-btn{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;border:0;border-radius:999px;padding:8px 18px;font-size:12px;font-weight:700;background:#fff;color:#111827;box-shadow:0 6px 16px rgba(0,0,0,.28);cursor:pointer}

JavaScript

(function(){
        var root=document.getElementById('item-01-13-02');if(!root)return;
        var btn=root.querySelector('.d01-13-02-btn');
        var tracks=root.querySelectorAll('.d01-13-02-track');
        btn.addEventListener('click',function(){
          tracks.forEach(function(t){t.classList.toggle('d01-13-02-on');});
        });
      })();

クラス名 .d01-13-02 は本ライブラリ内での識別用です。複数のパーツを同じページで使う場合は、重複しないよう名前を変更してください。