Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

299
Views
Cómo hacer que la página se desplace horizontalmente primero y luego se desplace verticalmente

ingrese la descripción de la imagen aquí

Me gustaría crear una página con un efecto similar al de la imagen gif publicada.

Hay dos secciones de la página, la primera es la sección horizontal, la segunda es la sección vertical.

cuando desplaza la rueda del mouse, la página se desplaza horizontalmente primero. luego se desplaza verticalmente después de llegar al final de la sección horizontal.

De alguna manera, tengo una idea de cómo debo establecer la altura de la sección horizontal y cuál es la proporción de traducción que debo aplicar en la sección horizontal, de modo que el último elemento de la sección horizontal pueda ocupar todo el espacio de la vista actual cuando se desplaza a una altura específica. Luego, puede comenzar a desplazarse verticalmente a la siguiente sección.

Traté de replicarlo. Aquí hay un enlace de lo que he hecho hasta ahora.

Gracias de antemano.

https://codepen.io/hongxuli/pen/eYRywRM

 let slider = document.querySelector('.slider-inner') let sliderWidth = slider.getBoundingClientRect().width document.querySelector(".horizontal").style.height = `${ sliderWidth * window.innerHeight / window.innerWidth }px` function animate() { let y = window.scrollY let precent = y/sliderWidth // what this precent should be ? slider.style.transform = `translateX(-${precent*100}%)` requestAnimationFrame(animate) } animate()
 .horizontal{ position: relative; width: 100vw; //height -- what is the relationship of this height and total width of items } .slider-container{ position: sticky; top: 0; width: 100vw; overflow: hidden; } .slider-inner{ display: flex; width: 200vw; } .item{ position: relative; width: 100vw; height: 100vh ; background-color: red; border: solid 1px black; } .vertical{ width: 100vw; height: 100vh; background-color: aqua; }
 <div class="horizontal"> <div class="slider-container"> <div class="slider-inner"> <div class="item"></div> <div class="item"></div> </div> </div> </div> <div class="vertical"></div>

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!