귀멸의 칼날 시리즈 정주행 시간·시청 순서 & 무한성편 Q&A·굿즈 완벽 가이드
귀멸의 칼날 전 시리즈 정주행 시간, 최신 시청 순서, 무한성편 관람 Q&A, 특별관 리뷰, 키링 굿즈 구매 팁까지 한눈에 정리했습니다.2025년 여름, 애니메이션 팬들의 심장을 다시 뛰게 만든 작품이 있습니다.바로 귀멸의 칼날 무한성편. 개봉과 동시에 예매율 1위를 기록하며, “이번만큼은 정주행하고 가야 한다”는 목소리가 이어지고 있습니다.이 글에서는 귀멸의 칼날 시리즈 정주행 시간과 공식 시청 순서, 무한성편 관람 Q&A, 특별관 리뷰, 키링 굿즈 구매 팁까지 최신 정보를 모두 정리했습니다.1. 귀멸의 칼날 시리즈 정주행, 총 소요 시간공식 TVA와 극장판 러닝타임을 합산하면 다음과 같습니다.1기 (26화): 약 10시간무한열차편 극장판: 117분2기 환락의 거리편 (11화): 약 4시간 20분3기 ..
2025. 8. 23.
캔바 AI·동영상 편집 완벽 가이드|무료 vs 유료 차이와 템플릿 활용법
캔바 AI 이미지, 동영상 편집, 목업·로고 제작까지 한 번에! 무료와 유료 차이, 템플릿 활용 꿀팁과 다운로드 방법을 지금 확인하세요.디자인이 필요할 때마다 막막했던 적 있으신가요?전문 프로그램은 어렵고, 비용도 만만치 않아 망설여졌을 겁니다.2025년 지금, 캔바(Canva) 는 이러한 문제를 단번에 해결해주는 올인원 툴로 자리 잡았습니다.캔바는 단순한 무료 디자인 툴이 아니라, AI 이미지 생성, 동영상 편집, PPT, 로고 제작, 목업까지 가능한 통합 플랫폼으로 진화했습니다.오늘은 캔바 최신 기능과 무료·유료 비교, 그리고 활용 꿀팁까지 정리해드리겠습니다.캔바 홈페이지 바로가기">캔바 홈페이지 바로가기1. 캔바란 무엇인가?캔바는 2013년 호주에서 시작된 온라인 디자인 플랫폼으로, 현재 전 세계 ..
2025. 8. 20.
칼덱신정 부작용·가격·후기 총정리, 약국 구매 전 꼭 알아둘 내돈내산 가이드
칼덱신정 부작용, 가격, 약국 판매 여부, 내돈내산 후기까지 2025년 최신 정보 정리. 안전 복용 팁과 온라인 최저가 구매 방법 확인하세요.체중 관리와 건강을 동시에 챙기고 싶은 분들에게 칼덱신정은 꾸준히 검색되는 인기 제품입니다.하지만 “부작용은 없을까?”, “가격은 얼마일까?”, “약국에서도 살 수 있나?” 같은 질문이 뒤따릅니다.이번 글에서는 실제 내돈내산 후기를 비롯해 칼덱신정 부작용, 가격, 구매처, 후기까지 최신 정보를 꼼꼼하게 정리했습니다.칼덱신정 부작용, 꼭 확인해야 할 부분칼덱신정은 식약처 인증을 받은 건강기능식품으로 보고된 심각한 부작용은 드뭅니다.다만 개인 체질이나 복용 상태에 따라 아래와 같은 일반적인 부작용이 보고될 수 있습니다.소화불량, 속쓰림가벼운 두통피부 알레르기 반응실제 ..
2025. 8. 20.
쿠팡플레이 스포츠패스 요금·동시접속·할인 완전정리 (2025 최신)
쿠팡플레이 스포츠패스 요금부터 동시접속 제한, 와우회원 할인, 카드 이벤트까지 완전정리! 2025년 8월 최신 정보를 꼭 확인하세요.쿠팡이 스포츠팬을 위해 만든 구독 서비스, ‘쿠팡플레이 스포츠패스’지금도 ‘해지할까?’, ‘할인 있나?’, ‘동시접속 되나?’ 고민하고 계신가요?2025년 8월 기준 요금제, 접속 정책, 할인 혜택, 리워드, 해지 방법까지 한눈에 정리된 정보만 모았습니다.시간 아끼고, 돈 아끼는 스포츠패스 완전정복 가이드 시작합니다.쿠팡플레이 스포츠패스란? (서비스 요약)프리미어리그, F1, NBA, K리그, 클럽월드컵까지 글로벌 스포츠 중계를 고화질로 실시간 제공하는 쿠팡의 전용 스포츠 OTT입니다.특징 요약:4K 고화질 시청 + 하이라이트·다시보기 포함유럽 직관, 유니폼 리워드, 스카이..
2025. 8. 18.
setTimeout(function () {
const dragSensitivity = 0.55; // 드래그 민감도
const clickTolerance = 0; // 클릭 간주 기준 (px), 0: 클릭 시 이동 안함. 클릭 시 이동하려면 1~3값 설정 고려.
const dragRatioThreshold = 0.55; // 배너 너비 대비 드래그 비율, 배너 드래그 후 드롭 시.
const newWindow = 1; // 1: 새 창, 0: 현재 창
const bannerConfigs = [
{
selector: '.sliding-banner-300',
width: 300,
height: 300,
id: '940041',
trackingCode: 'AF2787934', // 본인의 추적 코드로 대체
subId: '',
tsource: '',
background: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/600x600-back2.jpg',
cover: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/WOW-30Ox25O-cover-left.png',
arrowIcon: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/arrowbtn.png',
dragDirection: 'left'
},
{
selector: '.sliding-banner-150',
width: 320,
height: 150,
id: '940041',
trackingCode: 'AF2787934', // 본인의 추적 코드로 대체
subId: '',
tsource: '',
background: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/640x300-back2.jpg',
cover: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/WOW-32Ox15O-cover-left.png',
arrowIcon: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/arrowbtn.png',
dragDirection: 'left'
},
{
selector: '.sliding-banner-250',
width: 300,
height: 250,
id: '940041',
trackingCode: 'AF2787934', // 본인의 추적 코드로 대체
subId: '',
tsource: '',
background: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/600x500-back2.jpg',
cover: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/WOW-30Ox25O-cover-left.png',
arrowIcon: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/arrowbtn.png',
dragDirection: 'left'
},
{
selector: '.sliding-banner-280',
width: 336,
height: 280,
id: '940041',
trackingCode: 'AF2787934', // 본인의 추적 코드로 대체
subId: '',
tsource: '',
background: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/600x500-back3.jpg',
cover: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/WOW-30Ox25O-cover-right.png',
arrowIcon: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/arrow-right.png',
dragDirection: 'right'
}
];
const coupangLink = 'https://link.coupang.com/a/c2PToW'; // 본인의 간편 링크로 대체 📍
function openLink(link) {
if (newWindow) {
window.open(link, '_blank');
} else {
history.replaceState(null, null, window.location.href);
window.location.href = link;
}
}
function generateIframeURL(config) {
return `https://ads-partners.coupang.com/widgets.html?id=${config.id}&template=carousel&trackingCode=${config.trackingCode}&subId=${encodeURIComponent(config.subId || '')}&width=${config.width}&height=${config.height}&tsource=${encodeURIComponent(config.tsource || '')}`;
}
function createBanner(config) {
const iframeURL = generateIframeURL(config);
const wrapper = document.createElement('div');
wrapper.innerHTML = `
당겨주세요!
`;
return wrapper;
}
// trigger event update
function setupDragEvents(dragTarget, animatedBanner, threshold, link, direction) {
let startX = 0, diffX = 0, triggered = false, isDragging = false;
function getClientX(e) {
return e.type.includes('touch') ? e.touches[0].clientX : e.clientX;
}
function triggerOnce() {
if (triggered) return;
triggered = true;
animatedBanner.style.transform = 'translateX(0)';
animatedBanner.classList.add('active');
openLink(link);
}
function startDrag(e) {
if (e.type.startsWith('mouse') && e.button !== 0) return;
isDragging = true;
startX = getClientX(e);
diffX = 0;
triggered = false;
animatedBanner.classList.remove('active');
e.preventDefault();
}
function onDrag(e) {
if (!isDragging) return;
const currentX = getClientX(e);
diffX = currentX - startX;
if ((direction === 'left' && diffX < 0) || (direction === 'right' && diffX > 0)) {
animatedBanner.style.transform = `translateX(${diffX}px)`;
if (Math.abs(diffX) > threshold) {
triggerOnce();
}
e.preventDefault();
}
}
function endDrag() {
if (!isDragging) return;
isDragging = false;
const dragRatio = Math.abs(diffX) / dragTarget.offsetWidth;
if (Math.abs(diffX) < clickTolerance || (
dragRatio >= dragRatioThreshold &&
((direction === 'left' && diffX < 0) || (direction === 'right' && diffX > 0))
)) {
triggerOnce();
} else {
animatedBanner.style.transform = 'translateX(0)';
animatedBanner.classList.add('active');
}
diffX = 0;
}
dragTarget.addEventListener('mousedown', startDrag);
dragTarget.addEventListener('mousemove', onDrag);
dragTarget.addEventListener('mouseup', endDrag);
dragTarget.addEventListener('mouseleave', endDrag);
dragTarget.addEventListener('touchstart', startDrag, { passive: false });
dragTarget.addEventListener('touchmove', onDrag, { passive: false });
dragTarget.addEventListener('touchend', endDrag);
}
// end
bannerConfigs.forEach(config => {
const targets = document.querySelectorAll(config.selector);
if (targets.length === 0) return;
targets.forEach(target => {
target.innerHTML = '';
const banner = createBanner(config);
target.appendChild(banner);
const customBox = banner.querySelector('.customBox');
const animatedBanner = banner.querySelector('.customBanner');
const threshold = config.width * dragSensitivity;
setupDragEvents(customBox, animatedBanner, threshold, coupangLink, config.dragDirection);
});
});
}, 100);