>
>
画像が虹っぽくキラッとする

画像が虹っぽくキラッとする

GSAPかわいいアニメーション画像
2026-05-21
2026-05-22
v3

スクロールして指定の位置に来たら、画像が虹っぽくキラッと表示されるアニメーションをつけます。


1. クラス「scroll-rainbow」を画像ウィジットにつけとく

2. 以下のCSSを入れる

HTML
<style>
.scroll-rainbow {
  position: relative;
  overflow: hidden;
}
.scroll-rainbow img {
  display: block;
  max-width: 100%;
  height: auto;
}
.scroll-rainbow::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 200%;
  height: 100%;
  background: linear-gradient(60deg, 
     rgba(255, 255, 255, 0) 40%, 
     rgba(255, 215, 235, 0.25) 44%, 
     rgba(255, 243, 181, 0.25) 47%, 
     rgba(223, 255, 186, 0.25) 49%, 
     rgba(193, 239, 255, 0.25) 52%, 
     rgba(223, 188, 255, 0.125) 56%, 
     rgba(255, 255, 255, 0) 60%);
  transform: translateX(-130%) skewX(30deg);
  will-change: transform;
}

.scroll-rainbow.is-shine::after {
  animation: rainbowShine 1.8s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}
@keyframes rainbowShine {
  0% {
    transform: translateX(-130%) skewX(30deg);
  }
  100% {
    transform: translateX(100%) skewX(30deg);
  }
}
</style>

2. 以下のJSを入れる
(このコードの上にGSAP読み込みコードを入れてください。)

HTML

<script>
document.addEventListener('DOMContentLoaded', function() {
  gsap.registerPlugin(ScrollTrigger);

  // --- scroll rainbow ---
  const scrollRainbows = document.querySelectorAll('.scroll-rainbow'); 
  scrollRainbows.forEach(item => {
    ScrollTrigger.create({
      trigger: item,
      start: "top 80%", 
      onEnter: () => item.classList.add('is-shine'),
      onLeaveBack: () => item.classList.remove('is-shine'),
    });
  });

});
</script>
この記事をみんなにシェアしよう!!
Share!