전체 글
// 스와이퍼 클래스.swiper { width: 100%; height: 100%; padding: 16px 0;}// 슬라이드 클래스.swiper-slide { transition: all 0.3s ease;}// 활성화(정면) 슬라이드 클래스.swiper-slide-active { transform: scale(1) !important; z-index: 10;}// 이전,다음 슬라이드 클래스 .swiper-slide-prev, .swiper-slide-next { transform: scale(0.9) !important; opacity: 0.7;}
box-shadow: 0 0 10px 0 ${({ theme }) => alpha(theme.palette.primary.main, 0.3)};
import { useScroll } from 'framer-motion';import { useState, useEffect } from 'react';// 블로그용 스크롤 감지 훅const ExampleComponent = () => { const { scrollY } = useScroll(); const [isScrolling, setIsScrolling] = useState(false); useEffect(() => { const unsubscribe = scrollY.on("change", () => { setIsScrolling(true); setTimeout(() => setIsScrolling(false), 150); }); return unsubsc..
async function handleDownload() { // 요소 선택 const card = document.querySelector(".className") as HTMLElement; // 요소가 없으면 종료 if (!card) return; // 요소를 캔버스로 변환 const canvas = await html2canvas(card, { scale: 2, backgroundColor: "#ffffff", logging: false, }); // 이미지 데이터 추출 const imageData = canvas.toDataURL("image/png").split(",")[1]; // 파일명 설정 const f..