Horizontal Gsap ScrollTrigger - DashingDigit001/WikiPage GitHub Wiki
- 實作水平卷軸
- 實作水平卷軸的 ScrollTrigger
- VS Code
- Yarn
- Vite 專案
-
import { onMounted, ref } from "vue"; import gsap from "gsap";
-
加入滾輪事件
const container = ref(); onMounted(() => { container.value.addEventListener("wheel", (e: any) => { e.preventDefault(); //取消原本預設的滾輪事件 //透過 gsap 將 scroll 向右邊移動,數值為預設滾輪移動距離*2 gsap.to(container.value, { scrollLeft: container.value.scrollLeft + e.deltaY * 2, }); }); });
-
html 加入
<!-- container 這層 div 作為scroll-container 將底下元素包起來, h-screen 是為了讓這層 div 固定為 100vh,不隨著子元素變化, 加入 overflow-scroll 即可監聽 wheel 事件。 w-fit 設定這層 div 的寬度為其子元素的寬度總和。 --> <div ref="container" class="overflow-scroll"> <div class="flex w-fit"> <div class="sec1 w-[500px] h-screen">section a</div> <div class="w-[500px] h-screen">section a</div> <div class="w-[500px] h-screen">section a</div> <div class="w-[500px] h-screen">section a</div> <div class="w-[500px] h-screen">section a</div> <div class="w-[500px] h-screen">section a</div> </div> </div>
-
import ScrollTrigger from "gsap/ScrollTrigger"; gsap.registerPlugin(ScrollTrigger); ScrollTrigger.create({ scroller: container.value, trigger: ".sec1", horizontal: true, markers: true, onEnter: () => console.log("onEnter"), onLeave: () => console.log("onLeave"), });