LỰA CHỌN ĐĂNG KÝ

CHỌN NGAY

HÀNH TRÌNH

CỦA BÉ

Tham gia để trải nghiệm những khoảnh khắc
kịch tính và cơ hội nhận nhiều phần thưởng hấp dẫn!

Đăng ký

Sự kiện

Tham gia ngay để trải nghiệm những khoảnh khắc kịch tính và cơ hội nhận nhiều phần thưởng hấp dẫn

Đăng ký

Lịch học

Hãy đến và trải nghiệm sự hấp dẫn của bộ môn xe đạp thăng bằng

AN TOÀN
LÀ ƯU TIÊN

TRẢI NGHIỆM
CHUYÊN NGHIỆP

QUÀ TẶNG
HẤP DẪN

BỨT PHÁ
GIỚI HẠN

hoặc dùng wp_enqueue_script(..., true) */ (function () { 'use strict';/* ── Tìm tất cả slider trên trang (phòng trường hợp có nhiều) ── */ var wrappers = document.querySelectorAll('.dino-slider-wrap'); if (!wrappers.length) return;wrappers.forEach(function (wrap) { /* ── Lấy data ── */ var raw = wrap.getAttribute('data-events'); if (!raw) return; var events; try { events = JSON.parse(raw); } catch(e) { return; } if (!events.length) return;/* ── Các phần tử DOM ── */ var card = wrap.querySelector('.dino-big-card'); var cardImg = wrap.querySelector('.dino-card-img'); var cardTag = wrap.querySelector('.dino-card-tag'); var cardTitle = wrap.querySelector('.dino-card-title'); var metaDate = wrap.querySelector('.dino-meta-date'); var metaPlace = wrap.querySelector('.dino-meta-place'); var metaOrg = wrap.querySelector('.dino-meta-org'); var metaPrice = wrap.querySelector('.dino-meta-price'); var btnReg = wrap.querySelector('.dino-btn-reg'); var btnDet = wrap.querySelector('.dino-btn-det'); var cardLink = wrap.querySelector('.dino-card-link'); var cdEls = { d: wrap.querySelector('[data-cd="d"]'), h: wrap.querySelector('[data-cd="h"]'), m: wrap.querySelector('[data-cd="m"]'), s: wrap.querySelector('[data-cd="s"]'), };/* ── Dots & counter (nằm ngoài wrap) ── */ var dotsWrap = wrap.parentElement.querySelector('.dino-sl-dots'); var counterWrap = wrap.parentElement.querySelector('.dino-sl-counter');/* ── State ── */ var cur = 0; var timer = null;/* ── Helpers ── */ function pad(n) { return String(n).padStart(2, '0'); }function startCountdown(isoStr) { clearInterval(timer); if (!isoStr) return; var target = new Date(isoStr); if (isNaN(target)) return;function tick() { var diff = Math.max(0, target - new Date()); cdEls.d.textContent = pad(Math.floor(diff / 864e5)); cdEls.h.textContent = pad(Math.floor((diff % 864e5) / 36e5)); cdEls.m.textContent = pad(Math.floor((diff % 36e5) / 6e4)); cdEls.s.textContent = pad(Math.floor((diff % 6e4) / 1e3)); if (diff === 0) { clearInterval(timer); var bar = wrap.querySelector('.dino-cd-bar'); if (bar) bar.innerHTML = '🎉 Sự kiện đã bắt đầu!'; } } tick(); timer = setInterval(tick, 1000); }function renderDots() { if (!dotsWrap) return; dotsWrap.innerHTML = ''; events.forEach(function (_, i) { var dot = document.createElement('button'); dot.className = 'dino-sl-dot' + (i === cur ? ' active' : ''); dot.setAttribute('aria-label', 'Sự kiện ' + (i + 1)); dot.addEventListener('click', function () { goTo(i); }); dotsWrap.appendChild(dot); }); if (counterWrap) { counterWrap.textContent = (cur + 1) + ' / ' + events.length; } }function renderCard(ev) { if (cardImg) { cardImg.src = ev.img; cardImg.alt = ev.title; } if (cardTag) cardTag.textContent = ev.tag; if (cardTitle) cardTitle.textContent = ev.title; if (metaDate) metaDate.textContent = ev.date ? '📅 ' + ev.date : ''; if (metaPlace) metaPlace.textContent = ev.place ? '📍 ' + ev.place : ''; if (metaOrg) metaOrg.textContent = ev.org ? '🏢 ' + ev.org : ''; if (btnReg) btnReg.href = ev.reg_link || ev.link || '#'; if (btnReg) { btnReg.textContent = ev.type === 'free' ? 'ĐĂNG KÝ MIỄN PHÍ' : 'MUA VÉ NGAY'; } if (btnDet) btnDet.href = ev.link || '#'; if (cardLink) cardLink.href = ev.link || '#'; if (metaPrice) metaPrice.innerHTML = ev.price || ''; startCountdown(ev.iso); }function goTo(index) { cur = ((index % events.length) + events.length) % events.length;/* Animation: fade out → swap → fade in */ card.classList.add('is-animating'); setTimeout(function () { renderCard(events[cur]); renderDots(); card.classList.remove('is-animating'); }, 220); }/* ── Nút ‹ › ── */ var btnPrev = wrap.querySelector('.dino-sl-prev'); var btnNext = wrap.querySelector('.dino-sl-next'); if (btnPrev) btnPrev.addEventListener('click', function () { goTo(cur - 1); }); if (btnNext) btnNext.addEventListener('click', function () { goTo(cur + 1); });/* ── Swipe trên mobile ── */ var touchStartX = 0; card.addEventListener('touchstart', function (e) { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); card.addEventListener('touchend', function (e) { var dx = e.changedTouches[0].screenX - touchStartX; if (Math.abs(dx) > 40) goTo(cur + (dx < 0 ? 1 : -1)); }, { passive: true });/* ── Ẩn nút nếu chỉ 1 sự kiện ── */ if (events.length === 1) { if (btnPrev) btnPrev.style.display = 'none'; if (btnNext) btnNext.style.display = 'none'; if (dotsWrap) dotsWrap.style.display = 'none'; if (counterWrap) counterWrap.style.display = 'none'; }/* ── Khởi tạo ── */ renderCard(events[0]); renderDots(); });})();
Đang xử lý đăng ký...