<div class="wrapper">
  <p class="text-2xl text-center">スクロールしてね<br>↓↓↓↓↓↓↓</p>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <p class="moveText w-full mx-auto py-4 text-6xl font-bold text-center text-white duration-300 text1">スクロールで</p>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <p class="moveText w-full mx-auto py-4 text-6xl font-bold text-center text-white duration-300 text2">アニメーションが</p>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <p class="moveText w-full mx-auto py-4 text-6xl font-bold text-center text-white duration-300 text3">実装できる!!!</p>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
</div>
.wrapper {
  width: 100%;
  height: 100vh;
  padding: 48px 0;
  background-color: "ececec";
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  overflow-y: auto;
  overflow-x: hidden;
}

.text1,
.text3 {
  background-color: #003e92;
  transform: translateX(-100%);

  &.is-active {
    transform: translateX(0);
  }
}

.text2 {
  background-color: #003e92;
  transform: translateX(100%);

  &.is-active {
    transform: translateX(0);
  }
}
View Compiled
const move_text_animation = () => {
  const moveText = document.querySelectorAll(".moveText");

  const options = {
    root: document.querySelector(".wrapper"),
    rootMargin: "-10% 0px",
    threshold: 0
  };

  const observer = new IntersectionObserver(callback, options);

  moveText.forEach((text) => {
    observer.observe(text);
  });

  // 要素が表示されたら実行する動作
  function callback(entries) {
    entries.forEach((entry) => {
      if (entry.isIntersecting) {
        entry.target.classList.add("is-active");
      }
    });
  }
};

move_text_animation();

External CSS

  1. https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/2.2.19/tailwind.min.css

External JavaScript

This Pen doesn't use any external JavaScript resources.