CÁC LỚP HỌC

Chọn khu vực và đăng ký lớp học gần bạn nhất

Nhấn Ctrl + cuộn để zoom bản đồ

Lớp học Dino

NƠI NHÀ VÔ ĐỊCH BẮT ĐẦU

CLB

CÔNG VIÊN VĂN HÓA GÒ ĐỐNG ĐA

CLB

CÔNG VIÊN LONG BIÊN

CLB

CÔNG VIÊN PHÙNG KHOANG

CLB

CÔNG VIÊN HỒ ĐIỀU HÒA CẦU GIẤY

CLB

CÔNG VIÊN THỐNG NHẤT

CLB

CÔNG VIÊN CHU VĂN AN

VIDEO NỔI BẬT

Tập luyện như nhà vô địch

Tốc độ - sức mạnh

ĐĂNG KÝ
TRẢI NGHIỆM

Đừng bỏ lỡ cơ hội để bé yêu được giao lưu, kết bạn và rèn luyện trong môi trường chuyên nghiệp nhất

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ý...