‘밀어서 쿠팡 링크로 이동’ 버튼 구현 가이드

최종 목표: 사용자가 버튼을 밀면 쿠팡 상품 페이지로 이동하는 인터랙티브한 버튼을 만드는 것.

구성 요소:

  1. HTML: 버튼의 구조와 텍스트를 만듭니다.
  2. CSS: 버튼의 모양, 색상, 크기, 그리고 움직이는 효과를 만듭니다.
  3. JavaScript: 사용자의 마우스/터치 움직임을 감지해서 버튼이 밀리게 하고, 끝까지 밀었을 때 쿠팡 링크로 이동하게 합니다.

1. CSS 코드 (버튼의 디자인과 애니메이션 담당)

이 코드는 블로그 전체에 적용되는 디자인 규칙이므로, 워드프레스의 ‘추가 CSS’ 기능에 넣어주는 것이 가장 좋습니다.

📍 넣는 곳: 워드프레스 관리자 페이지 > ‘외모’ (Appearance) > ‘사용자 정의하기’ (Customize) > ‘추가 CSS’ (Additional CSS)

📋 CSS 코드:

/* 슬라이드 투 구매 버튼 전체 컨테이너 */
.swipe-to-buy-container {
width: 300px; /* 버튼 전체 너비 */
height: 50px; /* 버튼 전체 높이 */
background-color: #f0f0f0; /* 배경색 */
border-radius: 25px; /* 둥근 모서리 */
overflow: hidden; /* 넘치는 내용 숨기기 */
position: relative; /* 자식 요소 위치 기준 */
margin: 20px auto; /* 중앙 정렬 및 여백 */
cursor: pointer; /* 마우스 커서 변경 */
box-shadow: 0 2px 5px rgba(0,0,0,0.2); /* 그림자 효과 */
}

/* 슬라이드 트랙 (손잡이가 움직이는 배경) */
.swipe-track {
width: 100%;
height: 100%;
background-color: #e0e0e0;
border-radius: 25px;
position: absolute;
left: 0;
top: 0;
}

/* 슬라이드 손잡이 (사용자가 미는 부분) */
.swipe-handle {
width: 150px; /* 손잡이 너비 (컨테이너의 절반) */
height: 100%;
background-color: #4CAF50; /* 기본 녹색 */
color: white;
text-align: center;
line-height: 50px; /* 텍스트 세로 중앙 정렬 */
border-radius: 25px;
position: absolute;
left: 0;
top: 0;
cursor: grab; /* 마우스 커서 변경 */
transition: background-color 0.3s ease, left 0.3s ease; /* 부드러운 전환 효과 */
user-select: none; /* 텍스트 드래그 방지 */
font-weight: bold;
font-size: 1.1em;
}

/* 손잡이 드래그 중 커서 */
.swipe-handle:active {
cursor: grabbing;
}

/* 구매 완료 시 나타날 텍스트 */
.swipe-text {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
color: #333;
font-weight: bold;
font-size: 1.2em;
opacity: 0; /* 기본적으로 숨김 */
transition: opacity 0.3s ease; /* 부드러운 전환 효과 */
pointer-events: none; /* 숨겨져 있을 때 클릭 이벤트 무시 */
}

/* 슬라이드 완료 시 컨테이너 상태 변화 */
.swipe-to-buy-container.completed .swipe-track {
transform: translateX(100%); /* 트랙 숨기기 */
transition: transform 0.3s ease;
}

.swipe-to-buy-container.completed .swipe-handle {
transform: translateX(100%); /* 손잡이 숨기기 */
transition: transform 0.3s ease;
}

.swipe-to-buy-container.completed .swipe-text {
opacity: 1; /* 구매 완료 텍스트 나타나게 */
}

📋 수정된 CSS 코드:(CDN활용시, 카트 이모티콘)

css/* 슬라이드 투 구매 버튼 전체 컨테이너 - 쿠팡 느낌의 배경과 그림자 */
.swipe-to-buy-container {
    width: 320px; /* 너비 살짝 늘림 */
    height: 60px; /* 높이 살짝 늘림 */
    background-color: #f0f0f0; /* 밝은 배경 */
    border-radius: 30px; /* 더 둥근 모서리 */
    overflow: hidden;
    position: relative;
    margin: 30px auto; /* 여백 늘림 */
    cursor: pointer;
    box-shadow: 0 8px 15px rgba(0,0,0,0.2), 0 0 0 2px rgba(255,255,255,0.5) inset; /* 깊이감 있는 그림자 + 내부 테두리 */
    transition: all 0.3s ease; /* 모든 변화에 부드러운 전환 */
}

/* 컨테이너에 마우스 올렸을 때 (PC) */
.swipe-to-buy-container:hover {
    box-shadow: 0 10px 20px rgba(0,0,0,0.3), 0 0 0 3px rgba(255,255,255,0.7) inset;
    transform: translateY(-2px); /* 살짝 떠오르는 효과 */
}

/* 슬라이드 트랙 (손잡이가 움직이는 배경) - 쿠팡 느낌의 검정색 */
.swipe-track {
    width: 100%;
    height: 100%;
    background-color: #333; /* 어두운 배경 */
    border-radius: 30px;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1; /* 배경이므로 가장 아래 */
    transition: transform 0.4s ease; /* 트랙 움직임도 부드럽게 */
}

/* 슬라이드 손잡이 (사용자가 미는 부분) - 쿠팡 주황색과 아이콘 */
.swipe-handle {
    width: 160px; /* 손잡이 너비 (컨테이너의 절반) */
    height: 100%;
    background-color: #FF5F00; /* 쿠팡 주황색 */
    color: white;
    text-align: center;
    line-height: 60px; /* 텍스트 세로 중앙 정렬 */
    border-radius: 30px;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2; /* 손잡이가 배경 위로 올라오도록 */
    cursor: grab;
    transition: all 0.3s ease; /* 모든 변화에 부드러운 전환 */
    user-select: none;
    font-weight: 700; /* 더 굵은 폰트 */
    font-size: 1.2em; /* 폰트 크기 키움 */
    letter-spacing: 0.5px; /* 자간 살짝 넓힘 */
    box-shadow: 0 4px 8px rgba(0,0,0,0.3); /* 손잡이에도 그림자 */
    font-family: 'Noto Sans KR', sans-serif; /* 폰트 변경 (워드프레스에 Noto Sans KR이 로드되어 있어야 함) */
    display: flex; /* 아이콘과 텍스트 정렬을 위해 flexbox 사용 */
    align-items: center; /* 세로 중앙 정렬 */
    justify-content: center; /* 가로 중앙 정렬 */
    gap: 8px; /* 아이콘과 텍스트 사이 간격 */
}

/* 손잡이 드래그 중 커서 */
.swipe-handle:active {
    cursor: grabbing;
    box-shadow: 0 2px 4px rgba(0,0,0,0.5); /* 클릭 시 그림자 변화 */
    transform: scale(0.98); /* 클릭 시 살짝 줄어드는 효과 */
}

/* 구매 완료 시 나타날 텍스트 - 더 눈에 띄게 */
.swipe-text {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #343a40; /* 진한 회색 */
    font-weight: 800; /* 아주 굵은 폰트 */
    font-size: 1.3em; /* 폰트 크기 키움 */
    letter-spacing: 1px; /* 자간 넓힘 */
    opacity: 0; /* 기본적으로 숨김 */
    z-index: 3; /* 완료 텍스트가 가장 위로 */
    transition: opacity 0.4s ease;
    pointer-events: none; /* 숨겨져 있을 때 클릭 이벤트 무시 */
    font-family: 'Noto Sans KR', sans-serif;
}

/* 슬라이드 완료 시 컨테이너 상태 변화 */
.swipe-to-buy-container.completed .swipe-track {
    transform: translateX(100%); /* 트랙 숨기기 */
    transition: transform 0.4s ease;
}

.swipe-to-buy-container.completed .swipe-handle {
    transform: translateX(100%); /* 손잡이 숨기기 */
    transition: transform 0.4s ease;
}

.swipe-to-buy-container.completed .swipe-text {
    opacity: 1; /* 구매 완료 텍스트 나타나게 */
}

2. HTML & JavaScript 코드 (버튼의 구조와 움직임 담당)

이 두 코드는 함께 작동해야 하므로, 워드프레스 글/페이지 편집기 내의 하나의 ‘사용자 정의 HTML’ 블록에 같이 넣어주는 것이 가장 좋습니다.

📍 넣는 곳: 워드프레스 글/페이지 편집 화면 > ‘+’ 버튼 클릭 > ‘사용자 정의 HTML’ (Custom HTML) 블록 추가 > 아래 코드 전체 붙여넣기

📋 수정된 HTML & JavaScript 코드:

html<!-- HTML 코드 시작 -->
<div class="swipe-to-buy-container">
    <div class="swipe-track"></div> <!-- 배경 바 -->
    <div class="swipe-handle"><i class="fas fa-shopping-cart"></i> 밀어서 구매</div> <!-- 움직이는 손잡이 -->
    <div class="swipe-text">쿠팡으로 이동 중...</div> <!-- 완료 시 나타나는 텍스트 -->
</div>
<!-- HTML 코드 끝 -->

<!-- JavaScript 코드 시작 -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    const container = document.querySelector('.swipe-to-buy-container');
    const handle = document.querySelector('.swipe-handle');

    if (!container || !handle) { // 요소가 없으면 스크립트 실행 중단
        return;
    }

    let isDragging = false;
    let startX = 0;
    let handleInitialLeft = 0;
    const handleWidth = handle.offsetWidth;
    const containerWidth = container.offsetWidth;
    const maxDrag = containerWidth - handleWidth; // 손잡이가 최대로 움직일 수 있는 거리

    // 드래그 시작 이벤트 핸들러 (마우스 또는 터치)
    function startDrag(e) {
        isDragging = true;
        // 마우스 이벤트 또는 터치 이벤트에 따라 시작 X 좌표 설정
        startX = (e.type === 'touchstart') ? e.touches[0].clientX : e.clientX;
        handleInitialLeft = handle.offsetLeft; // 현재 손잡이의 왼쪽 위치 저장
        handle.style.transition = 'none'; // 드래그 중에는 CSS transition 비활성화 (부드러운 움직임)
        container.classList.remove('completed'); // 완료 상태 초기화 (다시 밀 수 있도록)
        handle.innerHTML = '<i class="fas fa-shopping-cart"></i> 밀어서 구매'; // 텍스트 초기화 (아이콘 포함)
    }

    // 드래그 중 이벤트 핸들러 (마우스 또는 터치)
    function doDrag(e) {
        if (!isDragging) return; // 드래그 중이 아니면 아무것도 안 함

        // 현재 X 좌표 설정
        const currentX = (e.type === 'touchmove') ? e.touches[0].clientX : e.clientX;
        let deltaX = currentX - startX; // 시작점으로부터 이동한 거리

        // 손잡이의 새 위치 계산 (0px ~ maxDragpx 사이로 제한)
        let newLeft = Math.max(0, Math.min(handleInitialLeft + deltaX, maxDrag));
        
        handle.style.left = newLeft + 'px'; // 손잡이 위치 업데이트
    }

    // 드래그 종료 이벤트 핸들러 (마우스 또는 터치)
    function endDrag() {
        if (!isDragging) return; // 드래그 중이 아니면 아무것도 안 함
        isDragging = false;

        const finalLeft = handle.offsetLeft; // 드래그 종료 시 손잡이의 최종 위치

        if (finalLeft >= maxDrag * 0.9) { // 손잡이가 거의 끝까지 밀렸을 경우 (90% 이상)
            // 쿠팡 링크로 이동하는 로직!
            handle.style.left = maxDrag + 'px'; // 손잡이를 끝까지 이동
            container.classList.add('completed'); // 'completed' 클래스 추가하여 CSS 애니메이션 트리거
            handle.textContent = '이동 중...'; // 텍스트 변경 (아이콘 없이)
            
            // ⭐⭐⭐ 이 부분에 실제 쿠팡 상품 링크를 넣어주세요! ⭐⭐⭐
            const coupangLink = 'YOUR_COUPANG_PRODUCT_LINK_HERE'; // <-- 이 부분을 수정하세요!
            window.open(coupangLink, '_blank'); // 새 탭에서 링크 열기 (권장)
            // 만약 현재 탭에서 이동하고 싶다면: window.location.href = coupangLink;

        } else {
            // 끝까지 밀지 못했으면 원래 위치로 되돌리기
            handle.style.left = '0px';
            handle.innerHTML = '<i class="fas fa-shopping-cart"></i> 밀어서 구매'; // 텍스트 초기화 (아이콘 포함)
        }
        handle.style.transition = 'left 0.3s ease'; // CSS transition 다시 활성화
    }

    // 이벤트 리스너 등록
    handle.addEventListener('mousedown', startDrag);
    document.addEventListener('mousemove', doDrag);
    document.addEventListener('mouseup', endDrag);

    handle.addEventListener('touchstart', startDrag);
    document.addEventListener('touchmove', doDrag);
    document.addEventListener('touchend', endDrag);

    // 터치 드래그 시 기본 스크롤 동작 방지 (부드러운 드래그를 위해)
    handle.addEventListener('touchmove', (e) => { e.preventDefault(); }, { passive: false });
});
</script>
<!-- JavaScript 코드 끝 -->

‘간지나는’ 슬라이드 버튼 (쿠팡 느낌 + 아이콘) 구현 가이드

준비물:

  • Font Awesome 아이콘 라이브러리: 버튼에 쇼핑 카트 아이콘을 넣기 위해 Font Awesome을 사용할 거예요. 워드프레스 사이트에 Font Awesome을 로드해야 합니다.📍 Font Awesome 로드 방법: 워드프레스 관리자 페이지 > ‘외모’ (Appearance) > ‘사용자 정의하기’ (Customize) > ‘추가 CSS’ (Additional CSS) 에 아래 코드를 추가합니다. (또는 ‘Insert Headers and Footers’ 같은 플러그인을 사용해서 <head> 태그 안에 직접 넣을 수도 있습니다.)
  • html
  • <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" integrity="sha512-..." crossorigin="anonymous" referrerpolicy="no-referrer" />
    • 참고: 위 CDN 링크는 예시이며, 최신 버전의 Font Awesome CDN 링크는 Font Awesome 공식 웹사이트에서 확인하여 사용하시는 것이 좋습니다.

구현 단계별 요약:

  1. CSS 코드 복사: 위에 있는 CSS 코드를 복사하여 워드프레스 관리자 페이지의 ‘외모’ > ‘사용자 정의하기’ > ‘추가 CSS’ 에 붙여넣고 ‘게시’ 버튼을 클릭하여 저장합니다.
  2. HTML & JavaScript 코드 복사: 위에 있는 HTML 코드와 JavaScript 코드를 통째로 복사합니다.
  3. 워드프레스 글/페이지에 삽입:
    • 새 글/페이지를 작성하거나 기존 글/페이지를 수정하는 화면으로 이동합니다.
    • 버튼을 넣고 싶은 위치에 ‘+’ 버튼을 클릭하여 ‘사용자 정의 HTML’ 블록을 추가합니다.
    • 복사한 HTML & JavaScript 코드를 이 블록 안에 붙여넣습니다.
  4. 쿠팡 링크 수정: JavaScript 코드 내의 const coupangLink = 'YOUR_COUPANG_PRODUCT_LINK_HERE'; 부분에서 'YOUR_COUPANG_PRODUCT_LINK_HERE' 대신 실제 쿠팡 상품 링크를 넣어주세요.
  5. 저장 및 확인: 글/페이지를 ‘업데이트’ 또는 ‘게시’ 한 후, 실제 블로그 페이지에서 버튼이 잘 작동하는지 확인합니다.

Font Awesome 라이브러리를 워드프레스 웹사이트에 로드(버튼에 쇼핑 카트 아이콘 활용법)

단계별 설명:

  1. 워드프레스 관리자 페이지에 로그인합니다. (사용자님의 워드프레스 사이트 뒷마당으로 슝슝~ 이동해주세요!)
  2. ‘외모’ 메뉴를 클릭합니다. 좌측 메뉴 바에서 ‘외모’ (Appearance) 라는 메뉴를 찾아서 클릭해주세요.
  3. ‘사용자 정의하기’를 클릭합니다. ‘외모’ 메뉴를 클릭하면 나타나는 하위 메뉴 중에서 ‘사용자 정의하기’ (Customize) 를 클릭합니다. (이 메뉴는 웹사이트의 디자인을 실시간으로 미리 보면서 변경할 수 있는 곳이에요!)
  4. ‘추가 CSS’ 메뉴를 찾아서 클릭합니다. ‘사용자 정의하기’ 화면으로 들어가면 왼쪽에 여러 가지 테마 설정 메뉴들이 쭉 나타날 거예요. 이 메뉴들을 아래로 스크롤해서 보면 ‘추가 CSS’ (Additional CSS) 또는 ‘사용자 정의 CSS’ 라는 이름의 메뉴가 보일 거예요! 이걸 클릭합니다.
  5. Font Awesome CDN 링크 코드를 붙여넣습니다. ‘추가 CSS’ 메뉴를 클릭하면 오른쪽에 CSS 코드를 입력할 수 있는 빈 칸이 나타날 거예요. 이 칸에 아래 코드를 복사해서 붙여넣습니다.html🔑<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" integrity="sha512-..." crossorigin="anonymous" referrerpolicy="no-referrer" />
  6. ‘게시’ 버튼을 클릭하여 저장합니다. 코드를 붙여넣은 후, 화면 왼쪽 상단이나 오른쪽에 있는 ‘게시’ (Publish) 버튼을 클릭하여 변경사항을 저장합니다. 이 버튼을 눌러야만 웹사이트에 실제로 적용된답니다!

⚠️ 중요 주의사항:

  • 코드 삽입의 위험성: 이 방법은 워드프레스에 직접 커스텀 코드를 삽입하는 것이므로, 항상 사이트를 백업한 후 진행하시고, 문제가 발생할 경우를 대비해야 합니다.
  • 성능 및 충돌: 너무 많은 커스텀 스크립트는 사이트 로딩 속도를 저하시키거나 다른 플러그인/테마와 충돌을 일으킬 수 있습니다.
  • 고급 사용자 팁: JavaScript 코드를 ‘사용자 정의 HTML’ 블록에 직접 넣는 것은 간단하지만, 더 안전하고 효율적인 방법은 ‘Code Snippets’ 같은 플러그인을 사용하거나, 테마의 functions.php 파일을 통해 별도의 .js 파일로 등록하는 것입니다. (이 방법들은 좀 더 전문적인 지식이 필요합니다.)
  • 반응형 디자인: 위 CSS 코드는 기본적인 디자인을 제공하며, 모바일 등 다양한 기기에서 최적화된 모습을 보이려면 추가적인 CSS 조정이 필요할 수 있습니다.

이제 사용자님의 블로그에 멋진 ‘밀어서 쿠팡으로 이동’ 버튼을 구현할 수 있을 거예요! 😉 방문자들이 신기해하고 클릭률도 높아질 수 있답니다!

밀어서 구매
쿠팡으로 이동 중…
이 포스팅은 쿠팡파트너스 활동의 일환으로, 이에따른 일정액의 수수료를 제공받습니다