fbpx

insights

Engineering insights, manufacturing know-how, and real-world project experience from our team.

ready to take your business to the next level?

Get in touch today and receive a complimentary consultation.

(function () { function updateActiveDot() { var screens = document.querySelectorAll('.qc-screen'); var dots = document.querySelectorAll('.qc-dot'); var nav = document.querySelector('.qc-dots-wrapper'); // 外层容器 class if (!screens.length || !dots.length || !nav) return; var centerY = window.innerHeight / 2; var bestIndex = 0; var bestDist = Infinity; var firstRect = screens[0].getBoundingClientRect(); var lastRect = screens[screens.length - 1].getBoundingClientRect(); // 控制整体显示 / 隐藏 if (firstRect.top > window.innerHeight || lastRect.bottom < 0) { nav.style.opacity = '0'; nav.style.pointerEvents = 'none'; return; } else { nav.style.opacity = '1'; nav.style.pointerEvents = 'auto'; } // 高亮逻辑 for (var i = 0; i < screens.length; i++) { var rect = screens[i].getBoundingClientRect(); var screenCenter = rect.top + rect.height / 2; var dist = Math.abs(screenCenter - centerY); if (dist < bestDist) { bestDist = dist; bestIndex = i; } } for (var j = 0; j < dots.length; j++) { dots[j].classList.remove('active'); } if (dots[bestIndex]) { dots[bestIndex].classList.add('active'); } } window.addEventListener('scroll', updateActiveDot); window.addEventListener('resize', updateActiveDot); document.addEventListener('DOMContentLoaded', updateActiveDot); })();