İlk mesaj burada görünecek

GIRLS

3/6 YAS KIZ SMILE MORE
006.HAPPYLİFE.7104
3/6 YAS KIZ SMILE MORE
 
7/10 YAS KIZ SMILE MORE
006.HAPPYLİFE.8104
7/10 YAS KIZ SMILE MORE
 
7/10 YAS KIZ KALPLİ LEOPAR
006.HAPPYLİFE.8101
7/10 YAS KIZ KALPLİ LEOPAR
 
7/10 YAS KIZ ALTI DESENLİ TAKIM
006.HAPPYLİFE.8100
7/10 YAS KIZ ALTI DESENLİ TAKIM
 
3/6 YAS KIZ ALTI DESENLİ TAKIM
006.HAPPYLİFE.7100
3/6 YAS KIZ ALTI DESENLİ TAKIM
 
7/10 YAS KIZ LİVE FOR LOVE
006.HAPPYLİFE.8102
7/10 YAS KIZ LİVE FOR LOVE
 
3/6 YAS KIZ LİVE FOR LOVE
006.HAPPYLİFE.7102
3/6 YAS KIZ LİVE FOR LOVE
 
3/6 YAS KIZ ALTI DESENLİ TAKIM
006.HAPPYLİFE.7105
3/6 YAS KIZ ALTI DESENLİ TAKIM
 
7/10 YAS KIZ ALTI DESENLİ TAKIM
006.HAPPYLİFE.8105
7/10 YAS KIZ ALTI DESENLİ TAKIM
 
6/9 Y RELAX BASKILI KIZ TAKIM
006.MUNDOLİA.0372
6/9 Y RELAX BASKILI KIZ TAKIM
6 YAŞ 7 YAŞ 8 YAŞ 9 YAŞ
6/9 Y VACATION BASKILI KIZ TAKIM
006.MUNDOLİA.0384
6/9 Y VACATION BASKILI KIZ TAKIM
6 YAŞ 7 YAŞ 8 YAŞ 9 YAŞ
10/13 Y CALIFORNIA BASKILI KIZ TAKIM
006.MUNDOLİA.0410
10/13 Y CALIFORNIA BASKILI KIZ TAKIM
10 YAŞ 11 YAŞ 12 YAŞ 13 YAŞ
10/13 Y BE NICE BASKILI KIZ TAKIM
006.MUNDOLİA.0476
10/13 Y BE NICE BASKILI KIZ TAKIM
10 YAŞ 11 YAŞ 12 YAŞ 13 YAŞ
14/16 Y ALWAYS BASKILI KIZ TAKIM
006.MUNDOLİA.0508
14/16 Y ALWAYS BASKILI KIZ TAKIM
14 YAŞ 15 YAŞ 16 YAŞ
14/16 Y YAZI BASKILI KIZ TAKIM
006.MUNDOLİA.0509
14/16 Y YAZI BASKILI KIZ TAKIM
14 YAŞ 15 YAŞ 16 YAŞ
2/5 YAS STITCH BASKILI KIZ JILE
006.HEROX.1208
2/5 YAS STITCH BASKILI KIZ JILE
2 YAŞ 3 YAŞ 4 YAŞ 5 YAŞ
2/5 YAS STITCH VE LILO BASKILI KIZ JILE
006.HEROX.1209
2/5 YAS STITCH VE LILO BASKILI KIZ JILE
2 YAŞ 3 YAŞ 4 YAŞ 5 YAŞ
2/5 YAS STITCH VE ELSA BASKILI KIZ JILE
006.HEROX.1210
2/5 YAS STITCH VE ELSA BASKILI KIZ JILE
2 YAŞ 3 YAŞ 4 YAŞ 5 YAŞ
2/5 YAS BURBERRY BASKILI KIZ JILE
006.HEROX.1211
2/5 YAS BURBERRY BASKILI KIZ JILE
2 YAŞ 3 YAŞ 4 YAŞ 5 YAŞ
2-5 Y MINNIE BASKILI TISORTLU SLOPET TAKIM
006.HEROX.1213
2-5 Y MINNIE BASKILI TISORTLU SLOPET TAKIM
2 YAŞ 3 YAŞ 4 YAŞ 5 YAŞ
3/7 YAS KIZ AYICIKLI WAFFLE
006.HAPPYLİFE.2225
3/7 YAS KIZ AYICIKLI WAFFLE
 
10/13 YAS KRISTAL NEVRULU DANTEL FIRFIRLI BLUZ
006.CUENTO.2508
10/13 YAS KRISTAL NEVRULU DANTEL FIRFIRLI BLUZ
10 YAŞ 11 YAŞ 12 YAŞ 13 YAŞ
2/5 Y YAKA KOLPUANLI BRODE
006.CUENTO.0627
2/5 Y YAKA KOLPUANLI BRODE
2 YAŞ 3 YAŞ 4 YAŞ 5 YAŞ
10/13 YAS BEL GIPE LASTIKLI CICEKLI   BLUZ
006.CUENTO.0369
10/13 YAS BEL GIPE LASTIKLI CICEKLI BLUZ
10 YAŞ 11 YAŞ 12 YAŞ 13 YAŞ

Loading Please Wait

You Have Viewed All Products.

document.addEventListener("DOMContentLoaded", function () { setTimeout(function () { const path = window.location.pathname; const bodyClassList = document.body.classList; const isTargetPage = path.includes("/product") || path.includes("/complete_order") || path.includes("/siparislerim") || path.includes("/hesabim") || path.includes("/account") || path.includes("/profile") || path.includes("/orders/detail") || path.includes("/uye/duzenle") || // bodyClassList.contains("productDetailPage") || bodyClassList.contains("complete_order") || bodyClassList.contains("siparislerim") || bodyClassList.contains("hesabim"); if (!isTargetPage) return; const header = document.querySelector(".mobile-header"); const content = document.querySelector(".productDetailPage") || document.querySelector("main") || document.querySelector(".pageContent") || document.querySelector(".container") || document.querySelector(".detailWrapper"); const stickyHeader = document.querySelector("header#helen.fixed"); const btnWrapper = document.getElementById("repeatOrderBtnWrapper"); const btn = document.getElementById("repeatOrderBtn"); if (header && content) { const headerHeight = header.offsetHeight; // Mobil header boşluğu uygula content.style.marginTop = headerHeight + "px"; // Eğer buton varsa: başta gizli başlasın if (btnWrapper && btn) { btnWrapper.style.marginTop = headerHeight + "px"; btnWrapper.style.opacity = "1"; btnWrapper.style.visibility = "visible"; btn.style.opacity = "1"; btn.style.visibility = "visible"; } console.log("✅ Mobil header boşluğu uygulandı:", headerHeight + "px"); } else { console.warn("❌ Header veya içerik bulunamadı."); } // Sticky scroll header davranışı (özellikle ürün detay için) if (stickyHeader) { window.addEventListener("scroll", function () { if (window.scrollY > 50) { stickyHeader.classList.add("stickyOn"); } else { stickyHeader.classList.remove("stickyOn"); } }); } }, 500); }); /* ===== Tekrar Sipariş Ver =====*/ document.addEventListener('DOMContentLoaded', function () { const form = document.getElementById('repeatAddToCartForm'); function addProductToCart(product) { return new Promise((resolve, reject) => { form.urun_id.value = product.urun_id || ''; form.measure_id.value = product.measure_id || ''; form.adet.value = product.adet || 1; form.renk.value = product.renk || ''; // AJAX form gönderimi const formData = new FormData(form); fetch(form.action, { method: 'POST', body: formData, credentials: 'same-origin', headers: { 'X-Requested-With': 'XMLHttpRequest' } }) .then(response => response.json()) .then(data => { if (data.success) { resolve(data); } else { reject(data.message || 'Sepete eklenemedi'); } }) .catch(err => { reject(err); }); }); } document.querySelectorAll('.repeat-order-btn').forEach(btn => { btn.addEventListener('click', function () { const orderId = this.getAttribute('data-order-id'); if (!orderId) return; this.disabled = true; this.innerHTML = ''; // Sipariş ürünlerini JSON olarak backend’den al fetch(`/api/get-order-products/${orderId}`, { method: 'GET', credentials: 'same-origin', headers: { 'X-Requested-With': 'XMLHttpRequest' } }) .then(res => { if (!res.ok) throw new Error('Sipariş ürünleri alınamadı'); return res.json(); }) .then(products => { if (!products || !products.length) throw new Error('Sipariş ürünü yok'); // Ürünleri tek tek sepete ekle let promises = products.map(p => addProductToCart(p)); return Promise.all(promises); }) .then(() => { alert('Sipariş ürünleri sepete eklendi.'); }) .catch(err => { alert('Tekrar sipariş işlemi başarısız: ' + err); }) .finally(() => { this.disabled = false; this.innerHTML = ''; }); }); }); }); /* ===== Mobil Uygulama Bildirim =====*/ document.addEventListener("DOMContentLoaded", function () { const isMobile = /iPhone|Android|iPad|iPod|Opera Mini|IEMobile|Mobile/i.test(navigator.userAgent); const banner = document.getElementById("smart-banner"); // Oturumda daha önce kapatılmışsa veya mobil değilse banner'ı gösterme const isBannerClosed = sessionStorage.getItem("smartBannerClosed"); if (!isMobile || isBannerClosed === "true") { if (banner) { banner.style.display = "none"; } } }); function redirectToStore() { const userAgent = navigator.userAgent || navigator.vendor || window.opera; if (/android/i.test(userAgent)) { window.location.href = "https://play.google.com/store/apps/details?id=com.serenay.payasbebe&hl=en_SG&gl=US"; } else if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) { window.location.href = "https://apps.apple.com/tr/app/payas-kids/id1521808073"; } else { alert("Cihaz tanımlanamadı. Lütfen mobil uygulama mağazasından uygulamayı arayın."); } } function closeSmartBanner() { const banner = document.getElementById("smart-banner"); if (banner) { banner.remove(); // Kullanıcının bu oturumda bildirimi kapattığını kaydet sessionStorage.setItem("smartBannerClosed", "true"); } } /* ===== Lazy Video =====*/ document.addEventListener("DOMContentLoaded", function() { let videos = document.querySelectorAll(".lazy-video"); videos.forEach(video => { let playSelector = video.getAttribute("data-play"); let stopSelector = video.getAttribute("data-stop"); let manualPlay = !!playSelector; // Kontrolleri ayarla let controls = video.getAttribute('data-controls'); if (controls === "false") { video.removeAttribute("controls"); } else { video.setAttribute("controls", "true"); } if (manualPlay) { let playButton = document.querySelector(playSelector); if (playButton) { playButton.addEventListener("click", function() { if (!video.src && video.getAttribute("data-src")) { video.src = video.getAttribute("data-src"); video.removeAttribute("data-src"); } video.play() .then(() => { video.parentElement.classList.add("videoRun"); }) .catch(err => { console.log("Manuel oynatma başarısız:", err); }); }); video.addEventListener("ended", function() { video.parentElement.classList.remove("videoRun"); }); // Video görünürlükten çıkınca durdurmak için observer ekle let observer = new IntersectionObserver(entries => { entries.forEach(entry => { if (entry.target !== video) return; if (!entry.isIntersecting) { video.pause(); video.currentTime = 0; video.parentElement.classList.remove("videoRun"); video.load(); // Poster geri gelsin } }); }, { threshold: 0.1 }); observer.observe(video); } // data-stop butonu varsa işlevini ekle if (stopSelector) { let stopButton = document.querySelector(stopSelector); if (stopButton) { stopButton.addEventListener("click", function() { video.pause(); video.currentTime = 0; video.parentElement.classList.remove("videoRun"); video.load(); // Poster tekrar gösterilsin }); } } return; } // Lazy-load için observer let delay = video.getAttribute('data-delay') || '10%'; let threshold = parseFloat(delay) / 100; let observer = new IntersectionObserver(entries => { entries.forEach(entry => { if (entry.target !== video) return; if (entry.isIntersecting) { if (!video.src && video.getAttribute("data-src")) { video.src = video.getAttribute("data-src"); video.removeAttribute("data-src"); } video.currentTime = 0; video.play() .then(() => { video.parentElement.classList.add("videoRun"); }) .catch(err => { console.log("Autoplay engellendi:", err); }); } else { video.pause(); video.currentTime = 0; video.parentElement.classList.remove("videoRun"); video.load(); // Poster tekrar görünsün } }); }, { threshold }); observer.observe(video); }); }); /* ===== Lazy Video End =====*/ /* ===== Görünür Alan Animasyonları ===== */ // Intersection Observer oluşturma const observer = new IntersectionObserver(entries => { entries.forEach(entry => { const target = entry.target; const isActuallyVisible = isElementVisible(target); if (entry.isIntersecting && isActuallyVisible) { target.classList.add("viewing"); // Sayaç varsa başlat const counters = target.querySelectorAll('.counter'); counters.forEach(counter => { const start = +counter.getAttribute('data-start'); const targetValue = +counter.getAttribute('data-target'); const speed = 20; const divider = 100; let count = start; const updateCount = () => { const inc = (targetValue - start) / divider; if (count < targetValue) { counter.innerText = Math.ceil(count).toLocaleString('tr-TR'); count += inc; setTimeout(updateCount, speed); } else { counter.innerText = targetValue.toLocaleString('tr-TR'); } }; updateCount(); }); } else { target.classList.remove("viewing"); } }); }, { threshold: 0.5 }); // Görünürlük eşiği (ayar isteğe bağlı) // Görsel olarak gerçekten görünür mü kontrolü (evrensel) function isElementVisible(el) { const style = getComputedStyle(el); return ( style.display !== "none" && style.visibility !== "hidden" && style.opacity !== "0" ); } // "watch" sınıfına sahip tüm elementleri izle document.querySelectorAll(".watch").forEach(section => { observer.observe(section); }); /* ===== Görünür Alan Animasyonları End ===== */ /* ===== Daktilo Efekti ===== */ const typewriterElements = document.querySelectorAll('.typewriter'); typewriterElements.forEach(typewriterElement => { const texts = typewriterElement.getAttribute('data-text').split(',').map(text => text.trim()); const states = (typewriterElement.getAttribute('data-state') || "repeat") .split(',') .map(state => state.trim()); const loopAttr = typewriterElement.getAttribute('data-loop'); // loop ayarı let loopCount = Infinity; if (loopAttr === "false") { loopCount = 1; } else if (!isNaN(parseInt(loopAttr))) { loopCount = parseInt(loopAttr); } // Hız ayarları const typeSpeed = parseInt(typewriterElement.getAttribute('data-type-speed')) || 70; const deleteSpeed = parseInt(typewriterElement.getAttribute('data-delete-speed')) || 60; const delayBeforeDelete = parseInt(typewriterElement.getAttribute('data-delay-before-delete')) || 1000; const delayBeforeType = parseInt(typewriterElement.getAttribute('data-delay-before-type')) || 500; const initialDelay = parseInt(typewriterElement.getAttribute('data-delay')) || 0; // Yeni eklendi let textIndex = 0; let index = 0; let isDeleting = false; let currentText = ''; let started = false; let loopsCompleted = 0; let isDone = false; function typeWriter() { if (!started || isDone || loopsCompleted >= loopCount) return; currentText = texts[textIndex]; if (!isDeleting && index < currentText.length) { typewriterElement.innerText = currentText.substring(0, index + 1); index++; setTimeout(typeWriter, typeSpeed); } else if (isDeleting && index > 0) { typewriterElement.innerText = currentText.substring(0, index - 1); index--; setTimeout(typeWriter, deleteSpeed); } else if (index === currentText.length && !isDeleting) { if (loopCount === 1) { isDone = true; return; } isDeleting = true; setTimeout(typeWriter, delayBeforeDelete); } else if (index === 0 && isDeleting) { isDeleting = false; textIndex++; if (textIndex >= texts.length) { textIndex = 0; loopsCompleted++; } if (loopsCompleted < loopCount) { setTimeout(typeWriter, delayBeforeType); } } } function startTyping() { if (!started && !isDone) { started = true; setTimeout(typeWriter, initialDelay); // İlk gecikme burada uygulanıyor } } function resetAndStartTyping() { started = false; loopsCompleted = 0; textIndex = 0; index = 0; isDeleting = false; isDone = false; typewriterElement.innerText = ''; startTyping(); } // Çoklu state kontrolü states.forEach(state => { if (state === "seen") { const observer = new IntersectionObserver(entries => { entries.forEach(entry => { if (entry.isIntersecting) { resetAndStartTyping(); } }); }, { threshold: 0.6 }); observer.observe(typewriterElement); } else if (state === "hover") { typewriterElement.addEventListener("mouseenter", startTyping); } else if (state === "click") { typewriterElement.addEventListener("click", startTyping); } else if (state === "repeat") { startTyping(); } }); }); /* ===== Daktilo Efekti End ===== */ var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')) var tooltipList = tooltipTriggerList.map(function(tooltipTriggerEl) { return new bootstrap.Tooltip(tooltipTriggerEl) }) var payasStart = $('.payasStart'); payasStart.click(function() { $('#popular').addClass('videoRun'); }); /**/ let lastScrollTop = 0; window.addEventListener('scroll', function () { const header = document.querySelector('header'); const mobile_header = document.querySelector('.mobile-header'); const body = document.querySelector('body'); const manipulation = document.getElementById('manipulation'); const currentScroll = window.scrollY; if (currentScroll > 10) { if (header) header.classList.add('stickyOn'); if (mobile_header) mobile_header.classList.add('stickyOn'); if (manipulation) manipulation.classList.add('stickyOn'); } else { if (header) header.classList.remove('stickyOn'); if (mobile_header) mobile_header.classList.remove('stickyOn'); if (manipulation) manipulation.classList.remove('stickyOn'); } lastScrollTop = currentScroll <= 0 ? 0 : currentScroll; }); /**/ // searchContent nesnesini ve içindeki elemanları seç const searchContent = document.querySelector('.searchContent'); // Elementlerin sayfada varlığını kontrol et if (searchContent) { const inputElement = searchContent.querySelector('input'); const labelElement = searchContent.querySelector('label'); // input ve label elementlerinin varlığını kontrol et if (inputElement && labelElement) { let hoverTimeout; // Hover olayı olduğunda inputa focus ver, label opacity'sini 0 yap ve varsa önceki timeout'u iptal et searchContent.addEventListener('mouseenter', function() { clearTimeout(hoverTimeout); // Önceki timeout'u temizle inputElement.focus(); labelElement.style.opacity = '0'; // Label opaklığını 0 yap }); // Hover'dan çıkıldığında focusu 1.5 saniye geciktirerek kaldır ve label opacity'sini geri döndür searchContent.addEventListener('mouseleave', function() { hoverTimeout = setTimeout(function() { inputElement.blur(); inputElement.value = ''; labelElement.style.opacity = '1'; // Label opaklığını geri döndür }, 1500); // 1.5 saniye bekleme }); } } /**/ document.addEventListener('DOMContentLoaded', function () { const isHomePage = window.location.pathname === "/"; const alreadyShown = localStorage.getItem('welcomeModalShown'); if (isHomePage && !alreadyShown) { const modalElement = document.getElementById('welcomeModal'); const bootstrapModal = new bootstrap.Modal(modalElement, { backdrop: 'static', keyboard: false }); // Modalı aç bootstrapModal.show(); // Otomatik kapanma setTimeout(() => { // Önce fadeOut animasyonu uygula $(modalElement).fadeOut(500, function () { // fadeOut tamamlandıktan sonra gerçekten kapat bootstrapModal.hide(); // Bootstrap state'i temizlemesi için çağırılır $(modalElement).removeClass('show').removeAttr('style').hide(); $('body').removeClass('modal-open'); $('.modal-backdrop').remove(); // Bir daha gösterilmemesi için kaydet localStorage.setItem('welcomeModalShown', 'true'); }); }, 3500); } }); /**/ document.addEventListener('DOMContentLoaded', function () { const pageElement = document.getElementById('page'); if (pageElement && pageElement.classList.contains('homePage')) { document.body.classList.add('home'); } }); /**/ /* ===== Hesaplamalar ===== */ var windowh = $(window).outerHeight(); // Window Yüksekliği var headerh = $('header').outerHeight(); // Header Yüksekliği var footerh = $('footer').outerHeight(); // /* ===== Hesaplamalar End ===== */ /* === Footer Fixed === */ $('.footerFixed').css({ 'min-height': (windowh - (headerh + footerh)) + 'px', }); /* === Footer Fixed End === */ /* === Content Fixed === */ $('.contentFixed').css({ 'min-height': (windowh - (headerh)) + 'px', }); /* === Content Fixed End === */

Toptan bebe ve çocuk giyim özel fırsatlarını kaçırmamak için uygulamayı kullanabilirsin.

Uygulamaya git