Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| start [2026/06/11 21:16] – jumpstartadmin | start [2026/06/11 21:28] (current) – jumpstartadmin | ||
|---|---|---|---|
| Line 57: | Line 57: | ||
| .js-card: | .js-card: | ||
| - | .js-label { position: absolute; left: 0; width: 100%; z-index: 3; padding: 16px; font-family: | + | .js-label { position: absolute; left: 0; width: 100%; z-index: 3; padding: 16px; font-family: |
| .js-card: | .js-card: | ||
| Line 97: | Line 97: | ||
| } | } | ||
| - | .js-title-sub { font-family: | + | .js-title-sub { font-family: |
| - | .js-title-main { font-family: | + | .js-title-main { font-family: |
| .js-title-divider { display: flex; align-items: | .js-title-divider { display: flex; align-items: | ||
| Line 161: | Line 161: | ||
| .js-card.js-fading .js-rgb-canvas { | .js-card.js-fading .js-rgb-canvas { | ||
| opacity: 1; | opacity: 1; | ||
| + | } | ||
| + | |||
| + | /* Block card hover effects when title zone is active */ | ||
| + | .js-wrap.js-title-active .js-card: | ||
| + | transform: scale(1) !important; | ||
| + | filter: brightness(0.6) saturate(0.8) !important; | ||
| + | } | ||
| + | .js-wrap.js-title-active .js-card: | ||
| + | opacity: 1 !important; | ||
| + | } | ||
| + | .js-wrap.js-title-active .js-card: | ||
| + | top: 50% !important; | ||
| + | transform: translateY(-50%) !important; | ||
| + | letter-spacing: | ||
| + | color: #EDE8F5 !important; | ||
| + | text-shadow: | ||
| + | opacity: 0.7 !important; | ||
| + | } | ||
| + | .js-wrap.js-title-active .js-card: | ||
| + | transform: translateX(-50%) scaleX(0) !important; | ||
| + | } | ||
| + | .js-wrap.js-title-active .js-card: | ||
| + | opacity: 0 !important; | ||
| } | } | ||
| Line 313: | Line 336: | ||
| const cards = document.querySelectorAll(' | const cards = document.querySelectorAll(' | ||
| const wrap = document.querySelector(' | const wrap = document.querySelector(' | ||
| - | const titleBg = document.querySelector(' | ||
| const titleEl = document.querySelector(' | const titleEl = document.querySelector(' | ||
| let activeCard = null; | let activeCard = null; | ||
| Line 370: | Line 392: | ||
| function isTitleZone(e) { | function isTitleZone(e) { | ||
| - | if (!titleBg) return false; | + | |
| - | const rect = titleBg.getBoundingClientRect(); | + | const main = document.querySelector(' |
| - | return e.clientX >= rect.left && e.clientX <= rect.right && | + | const divider = document.querySelector(' |
| - | | + | |
| + | const top = sub.getBoundingClientRect().top - 20; | ||
| + | const bottom = (divider || main).getBoundingClientRect().bottom + 20; | ||
| + | const left = main.getBoundingClientRect().left - 40; | ||
| + | const right = main.getBoundingClientRect().right + 40; | ||
| + | return e.clientX >= left && e.clientX <= right && | ||
| + | | ||
| } | } | ||
| Line 379: | Line 407: | ||
| if (!titleEl) return; | if (!titleEl) return; | ||
| if (on) { | if (on) { | ||
| - | titleEl.style.textShadow = '0 0 100px rgba(107,79,187,1), 0 0 40px rgba(184,173,219,0.9), 0 0 15px rgba(255, | + | |
| + | | ||
| + | titleEl.style.color = '# | ||
| } else { | } else { | ||
| + | titleEl.style.transition = ' | ||
| titleEl.style.textShadow = ''; | titleEl.style.textShadow = ''; | ||
| + | titleEl.style.color = ''; | ||
| } | } | ||
| } | } | ||
| Line 389: | Line 421: | ||
| activeCard = hoveredCard; | activeCard = hoveredCard; | ||
| setTitleGlow(false); | setTitleGlow(false); | ||
| + | wrap.classList.remove(' | ||
| cards.forEach(card => { | cards.forEach(card => { | ||
| if (card !== hoveredCard) { | if (card !== hoveredCard) { | ||
| Line 402: | Line 435: | ||
| activeCard = null; | activeCard = null; | ||
| setTitleGlow(false); | setTitleGlow(false); | ||
| + | wrap.classList.remove(' | ||
| cards.forEach(card => card.classList.remove(' | cards.forEach(card => card.classList.remove(' | ||
| } | } | ||
| Line 408: | Line 442: | ||
| activeCard = ' | activeCard = ' | ||
| setTitleGlow(true); | setTitleGlow(true); | ||
| + | wrap.classList.add(' | ||
| cards.forEach(card => card.classList.remove(' | cards.forEach(card => card.classList.remove(' | ||
| } | } | ||