Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

346
Vistas
Chrome based browsers - ScrollTo and anchor links not working

I am trying to build a portfolio site where an elevator moves up and when it gets to a floor the doors open and the detail renders. When scrolling further the doors close and when it reaches a certain point it snaps and smooth scrolls to the nearest floor.

I have got it working fine in Firefox but not chrome based browsers which is really confusing me. I also can get the chrome based browser to move to a hash anchor point or scrolltoview but only if firing them using a button they never work when the intersection observer calls the code???

I am using the intersection observer to detect which floor is visible and initiate the opening and closing event and a separate observer to detect when a floor is 50% on screen to snap to the nearest floor.

I first tried to avoid the second intersection observer using scroll-snap to align the floors but that didn't work on any browser??

.container-projects {
    z-index: -2;
    min-height: 80vh;
    min-width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: start;
    scroll-snap-type: y proximity;
}

.project {
    z-index: -2;
    background-size: cover;
    width: 100%;
    height: 80vh;
    padding-top: 3rem;
    padding-bottom: 3rem;
    scroll-snap-align: start;
}

I next tried to use the scrollToView() function which works beautifully in firefox but not in chrome based??

const floorObserver = new IntersectionObserver(
    (entries) => {
        entries.forEach((entry) => {
            if (entry.isIntersecting) {
                entry.target.scrollIntoView({ behavior: 'smooth', block: 'end' });
            }
        });
    },
    { threshold: 0.5 }
);

I also tried to use the anchor links to get the intersection observer to locate the floors which again works fine in firefox but not in chrome??

const floorObserver = new IntersectionObserver(
    (entries) => {
        entries.forEach((entry) => {
            if (entry.isIntersecting) {
                move(entry.target.id);
                
            }
        });
    },
    { threshold: 0.5 }
);

function move(entry) {
    window.location.href = '#' + entry;

}

I am getting the feeling it maybe because the mouse scrolling is taking precedence over the scrollTo and the anchor links but I really don't understand what's going on?

Any help is much appreciated but help without JQuery is even more appreciated.

Many Thanks

Geoff

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

I have fixed my own problem whoop whoop!

In the end I could not get the hash change or scrollto functions to work in chrome based browsers so I returned to where I started and played again with scroll snap and worked out the problem was the parent of the scroll-snap parent container it was position: relative when changed to position: fixed everything worked well.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda