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

パーツ番号 08-12-04 ・ JavaScript使用

雲流れる空パララックス

大きさの異なる雲が3段階の速度で左右に流れる空の背景演出。WordPressの旅行系・子ども向けサイトのヘッダー背景に使うと、爽やかで柔らかい雰囲気を演出できます。

autojs

プレビュー

ソースコード

HTML

<div class="view08-12-04">
          <div class="cloudA08-12-04"></div>
          <div class="cloudB08-12-04"></div>
          <div class="cloudC08-12-04"></div>
          <div class="scr08-12-04">
            <div class="sp08-12-04">
              <span class="hint08-12-04">↓ 枠内をスクロール<br>雲が段階的な速度で流れます</span>
            </div>
          </div>
        </div>

CSS

.d08-12-04{background:#bae6fd;align-items:stretch;}
        .d08-12-04 .view08-12-04{
          position:relative;width:100%;height:212px;border-radius:12px;
          overflow:hidden;background:linear-gradient(180deg,#38bdf8,#e0f2fe);
        }
        .d08-12-04 .cloudA08-12-04,.d08-12-04 .cloudB08-12-04,.d08-12-04 .cloudC08-12-04{
          position:absolute;top:0;bottom:0;left:-60px;right:-60px;will-change:transform;
        }
        .d08-12-04 .cloudA08-12-04{
          background:
            radial-gradient(circle 14px at 20% 25%,rgba(255,255,255,.6),transparent 70%),
            radial-gradient(circle 18px at 60% 18%,rgba(255,255,255,.55),transparent 70%),
            radial-gradient(circle 12px at 85% 30%,rgba(255,255,255,.5),transparent 70%);
        }
        .d08-12-04 .cloudB08-12-04{
          background:
            radial-gradient(circle 24px at 35% 45%,rgba(255,255,255,.75),transparent 70%),
            radial-gradient(circle 20px at 10% 55%,rgba(255,255,255,.7),transparent 70%),
            radial-gradient(circle 26px at 75% 50%,rgba(255,255,255,.7),transparent 70%);
        }
        .d08-12-04 .cloudC08-12-04{
          background:
            radial-gradient(circle 34px at 25% 78%,rgba(255,255,255,.9),transparent 70%),
            radial-gradient(circle 30px at 68% 82%,rgba(255,255,255,.85),transparent 70%);
        }
        .d08-12-04 .scr08-12-04{position:absolute;inset:0;overflow-y:auto;}
        .d08-12-04 .sp08-12-04{height:660px;padding:16px 18px 0;}
        .d08-12-04 .hint08-12-04{display:inline-block;font-size:11.5px;line-height:1.7;color:#075985;background:rgba(255,255,255,.7);padding:8px 12px;border-radius:8px;}

JavaScript

(function(){
        var scr=document.querySelector('.d08-12-04 .scr08-12-04');
        if(!scr)return;
        var a=document.querySelector('.d08-12-04 .cloudA08-12-04');
        var b=document.querySelector('.d08-12-04 .cloudB08-12-04');
        var c=document.querySelector('.d08-12-04 .cloudC08-12-04');
        function update(){
          var max=scr.scrollHeight-scr.clientHeight;
          var p=max>0?scr.scrollTop/max:0;
          a.style.transform='translateX('+(p*18)+'px)';
          b.style.transform='translateX('+(-p*40)+'px)';
          c.style.transform='translateX('+(p*68)+'px)';
        }
        scr.addEventListener('scroll',update,{passive:true});
        update();
      })();

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