mirror of
https://github.com/qdrant/landing_page.git
synced 2026-10-02 01:18:30 +02:00
* two new sections * enterprise capabilities and enterprise ready sections * sections: engineered-for-builders and performance-by-design * sections: cta-banner, integrations-logos, solutions # Conflicts: # qdrant-landing/themes/qdrant-2024/assets/css/partials/_cta-banner.scss # qdrant-landing/themes/qdrant-2024/layouts/partials/cta-banner.html * remove old sections from index.html * wip: home page * reuse links, carousel width * globe and globe lights * globe lights * finalyzing the globe, add customers icons * new icons set + svg partial update * upd icons in the enterprise-ready section * lines background * globe lights as gradient and svg * fix carousel responsiveness * fix cut box shadow * accordion slider responsiveness * new hero * hero customers * some hero responsiveness * customers layout fix * cards responsiveness * fixes * remove floating github link * hero - bigger screens * refactor css * more hero responsiveness * fix * hero parallax * replace svg as img with embedded svg logos * fix marquee * slider's tabs responsiveness * remove horizontal scroll on the mobile * moved images * images optim * moved paths to markdown * svg -> png * some refactoring and clean up * moved scss * svg to png * more images optimization and cleaning * optimizing png * fix globe cards height * add reveal effect * improve reveal effect * fix for the hero animation in Safari * removed type:page preventing use-cases page from rendering with newer version of Hugo * restore static/img/home/reranking.webp * remove unused files * formatting * hero and reveal fixes * fixes * update cta banner * links and content fix * fixes: content, links, web-ui illustration * canva testimonial * upd link * fix * replace links * slider links
42 lines
1.3 KiB
JavaScript
42 lines
1.3 KiB
JavaScript
/**
|
|
* Hero parallax for home page.
|
|
* Only runs when on home page (script loaded conditionally).
|
|
* Uses translate3d for Safari GPU acceleration and smooth rendering.
|
|
*/
|
|
|
|
function initHeroParallax() {
|
|
if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;
|
|
const hero = document.querySelector('.hero');
|
|
if (!hero) return;
|
|
|
|
const layers = [
|
|
{ el: hero.querySelector('.hero__grid'), factor: 0.06, centered: false },
|
|
{ el: hero.querySelector('.hero__planet'), factor: 0.2, centered: true },
|
|
{ el: hero.querySelector('.hero__blue-haze'), factor: 0.08, centered: true },
|
|
{ el: hero.querySelector('.hero__astronauts'), factor: 0.12, centered: true },
|
|
].filter(({ el }) => el);
|
|
|
|
let ticking = false;
|
|
|
|
function updateParallax() {
|
|
const scrollY = window.scrollY;
|
|
layers.forEach(({ el, factor, centered }) => {
|
|
const y = Math.round(scrollY * factor * 10) / 10;
|
|
el.style.transform = centered ? `translate3d(-50%, ${y}px, 0)` : `translate3d(0, ${y}px, 0)`;
|
|
});
|
|
ticking = false;
|
|
}
|
|
|
|
function onScroll() {
|
|
if (!ticking) {
|
|
requestAnimationFrame(updateParallax);
|
|
ticking = true;
|
|
}
|
|
}
|
|
|
|
window.addEventListener('scroll', onScroll, { passive: true });
|
|
updateParallax();
|
|
}
|
|
|
|
document.addEventListener('DOMContentLoaded', initHeroParallax);
|