(function() { var animDuration = 800; var sessionKey = 'spa_transition_flag'; var circleId = 'spa-circle'; function createCircle() { var circle = document.getElementById(circleId); if (!circle) { circle = document.createElement('div'); circle.id = circleId; document.body.appendChild(circle); } return circle; } // --- Функция сброса состояния анимации --- function resetTransition() { document.body.classList.remove('circle-loading', 'circle-active'); sessionStorage.removeItem(sessionKey); } // --- 1. ВХОД НА СТРАНИЦУ --- createCircle(); // Проверка при обычной загрузке if (sessionStorage.getItem(sessionKey) === 'yes') { document.body.classList.add('circle-loading', 'circle-active'); setTimeout(function() { resetTransition(); }, 50); } // --- КЛЮЧЕВОЙ ФИКС ДЛЯ КНОПКИ "НАЗАД" --- window.addEventListener('pageshow', function(event) { // Если страница загружена из кэша (BFCache), принудительно убираем круг if (event.persisted || sessionStorage.getItem(sessionKey) === 'yes') { resetTransition(); } }); function getCleanPath(url) { try { var parser = new URL(url, window.location.origin); var path = parser.pathname; if (path.length > 1 && path.endsWith('/')) { path = path.slice(0, -1); } return path; } catch (e) { return url; } } // --- 2. ПЕРЕХВАТ КЛИКА --- document.addEventListener('click', function(e) { var link = e.target.closest('a'); if (!link) return; var href = link.getAttribute('href'); var target = link.getAttribute('target'); // Игнорирование системных ссылок if (!href || target === '_blank' || href.includes('mailto:') || href.includes('tel:') || href.includes('javascript:')) return; if (link.classList.contains('t-carousel__control') || link.classList.contains('t-gallery__item') || link.classList.contains('t-popup')) return; // Проверка якорей и текущей страницы if (href.startsWith('#')) return; var currentPath = getCleanPath(window.location.href); var targetPath = getCleanPath(link.href); var targetHash = new URL(link.href, window.location.origin).hash; if (currentPath === targetPath && targetHash) return; // Запуск анимации перехода e.preventDefault(); e.stopPropagation(); sessionStorage.setItem(sessionKey, 'yes'); document.body.classList.add('circle-active'); setTimeout(function() { window.location.href = href; }, animDuration); }, true); })();
OSTY.
SUMMARY
This is an exclusive Web3 platform for curating and selling limited NFT collections. Unlike mass platforms, the site relies on a “gallery” presentation: a minimalistic dark interface, a deep focus on the visual foundations of each token, and immersive storytelling.
Figma
Tilda
After Effects
Kling 3
Nano banana pro
Project
Goals
Build a premium Web3 NFT storefront with seamless wallet integration and smart contract support.
The goal is to optimize the rendering of heavy media content (3D/4K art) while maintaining a fluid, high-end aesthetic with fast loading speeds and a mobile-first UX for digital collectors.
LET’S COLLABORATE