03 ドロワーフェードイン&メニューも順番にフェードイン
const pattern3 = () => {
gsap.set([drawer, ".js-nav-item a"], { visibility: "hidden", opacity: 0 });
let tl3 = gsap.timeline({
onReverseComplete: function () {
gsap.set([drawer, ".js-nav-item a"], {
visibility: "hidden",
opacity: 0,
});
},
});
openButton.addEventListener("click", () => {
if (!tl3.reversed()) {
tl3
.to(drawer, {
visibility: "visible",
opacity: 1,
ease: Power2.easeInOut,
})
.to(".js-nav-item a", {
stagger: { amount: 0.6 },
visibility: "visible",
opacity: 1,
});
} else {
tl3.play();
}
});
closeButton.addEventListener("click", () => {
tl3.reverse();
});
};
ドロワーを開いている間、メインコンテンツはスクロールしないようにしてあります。
ドロワーのアニメーションはすべてJavaScriptファイル内(GSAP)で記述しています。(初期設定や見た目はCSS)