Skip to content

Commit dee550b

Browse files
committed
design: 스크롤 영역 변경
1 parent bc66eae commit dee550b

File tree

1 file changed

+49
-44
lines changed

1 file changed

+49
-44
lines changed

src/app/(home)/page.tsx

Lines changed: 49 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ export default function LandingPage() {
7171
useEffect(() => {
7272
setIsLoaded(true);
7373
lenisRef.current = new Lenis({
74-
duration: 0.8, // 1.2에서 0.8로 변경
74+
duration: 0.8, // 1.2에�� 0.8로 변경
7575
easing: (t: number) => Math.min(1, 1.001 - Math.pow(2, -10 * t)),
7676
smoothWheel: true,
7777
wheelMultiplier: 2,
@@ -267,59 +267,64 @@ export default function LandingPage() {
267267
<AnimatePresence mode="wait">
268268
{currentSlide > 0 && (
269269
<motion.div
270-
key={currentSlide}
271-
className={`relative z-40 flex ${
272-
isLargeScreen ? "w-1/2" : "h-1/2 w-full"
273-
} flex-col items-center justify-center p-4 pb-6 pt-4 max-[640px]:px-12 max-[640px]:py-3 md:p-6 md:pb-8 md:pt-6`}
270+
className={`relative z-40 flex ${isLargeScreen ? "w-1/2" : "h-1/2 w-full"}`}
274271
style={{
275272
background: "linear-gradient(135deg, #71db77 0%, #56c45d 100%)",
276273
display: "flex",
277274
flexDirection: "column",
278275
justifyContent: "center",
279276
alignItems: "center",
280277
height: isLargeScreen ? "100%" : "50%",
278+
overflow: "hidden",
281279
}}
282-
initial={{ opacity: 0, [isLargeScreen ? "y" : "x"]: isLargeScreen ? "100%" : "100%" }}
283-
animate={{ opacity: 1, [isLargeScreen ? "y" : "x"]: 0 }}
284-
exit={{ opacity: 0, [isLargeScreen ? "y" : "x"]: isLargeScreen ? "-100%" : "-100%" }}
285-
transition={{ duration: 0.4, ease: "easeInOut" }} // Updated transition duration
286280
>
287-
<motion.h2
288-
className="mb-2 mt-0 text-center text-xl font-semibold text-[#1a1a1a] max-[640px]:mb-1 max-[640px]:px-4 md:mb-4 md:mt-0 md:text-3xl"
289-
initial={{ opacity: 0, y: 20 }}
290-
animate={{ opacity: 1, y: 0 }}
291-
transition={{ delay: 0.05, duration: 0.3 }} // Updated transition
292-
>
293-
{slides[currentSlide].title}
294-
</motion.h2>
295-
<motion.div
296-
initial={{ opacity: 0, y: 20 }}
297-
animate={{ opacity: 1, y: 0 }}
298-
transition={{ delay: 0.1, duration: 0.3 }} // Updated transition
299-
className="mb-2 w-full max-w-[600px] max-[640px]:max-w-[75%] max-[640px]:px-4 md:mb-4"
300-
style={{ maxHeight: "calc(100% - 12rem)" }}
301-
>
302-
<div
303-
className="relative w-full overflow-hidden rounded-lg shadow-lg"
304-
style={{ paddingBottom: "56.25%" }}
281+
<AnimatePresence mode="wait">
282+
<motion.div
283+
key={currentSlide}
284+
className="flex h-full w-full flex-col items-center justify-center p-4 pb-6 pt-4 max-[640px]:px-12 max-[640px]:py-3 md:p-6 md:pb-8 md:pt-6"
285+
initial={{ y: "100%" }}
286+
animate={{ y: 0 }}
287+
exit={{ y: "-100%" }}
288+
transition={{ duration: 0.4, ease: "easeInOut" }}
305289
>
306-
<Image
307-
src={slides[currentSlide].image || ""}
308-
alt={slides[currentSlide].title || ""}
309-
fill
310-
style={{ objectFit: "cover" }}
311-
sizes="(max-width: 768px) 100vw, 600px"
312-
/>
313-
</div>
314-
</motion.div>
315-
<motion.p
316-
className="mb-0 max-w-[600px] whitespace-pre-wrap text-center text-sm text-[#1a1a1a] max-[640px]:mt-1 max-[640px]:px-4 md:text-xl"
317-
initial={{ opacity: 0, y: 20 }}
318-
animate={{ opacity: 1, y: 0 }}
319-
transition={{ delay: 0.15, duration: 0.3 }} // Updated transition
320-
>
321-
{slides[currentSlide].content}
322-
</motion.p>
290+
<motion.h2
291+
className="mb-2 mt-0 text-center text-xl font-semibold text-[#1a1a1a] max-[640px]:mb-1 max-[640px]:px-4 md:mb-4 md:mt-0 md:text-3xl"
292+
initial={{ opacity: 0, y: 20 }}
293+
animate={{ opacity: 1, y: 0 }}
294+
transition={{ delay: 0.05, duration: 0.3 }}
295+
>
296+
{slides[currentSlide].title}
297+
</motion.h2>
298+
<motion.div
299+
initial={{ opacity: 0, y: 20 }}
300+
animate={{ opacity: 1, y: 0 }}
301+
transition={{ delay: 0.1, duration: 0.3 }}
302+
className="mb-2 w-full max-w-[600px] max-[640px]:max-w-[75%] max-[640px]:px-4 md:mb-4"
303+
style={{ maxHeight: "calc(100% - 12rem)" }}
304+
>
305+
<div
306+
className="relative w-full overflow-hidden rounded-lg shadow-lg"
307+
style={{ paddingBottom: "56.25%" }}
308+
>
309+
<Image
310+
src={slides[currentSlide].image || ""}
311+
alt={slides[currentSlide].title || ""}
312+
fill
313+
style={{ objectFit: "cover" }}
314+
sizes="(max-width: 768px) 100vw, 600px"
315+
/>
316+
</div>
317+
</motion.div>
318+
<motion.p
319+
className="mb-0 max-w-[600px] whitespace-pre-wrap text-center text-sm text-[#1a1a1a] max-[640px]:mt-1 max-[640px]:px-4 md:text-xl"
320+
initial={{ opacity: 0, y: 20 }}
321+
animate={{ opacity: 1, y: 0 }}
322+
transition={{ delay: 0.15, duration: 0.3 }}
323+
>
324+
{slides[currentSlide].content}
325+
</motion.p>
326+
</motion.div>
327+
</AnimatePresence>
323328
</motion.div>
324329
)}
325330
</AnimatePresence>

0 commit comments

Comments
 (0)