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

272
Views
Desplazamiento del texto dentro del contenedor div no visible

Tengo un div con un ejemplo de frase dentro:

 <div class="container"> <div class="phrase-doc">Lorem ipsum bla bla</div> <div class="phrase-doc">Lorem ipsum bla bla</div> <div class="phrase-doc">Lorem ipsum bla bla</div> <div class="phrase-doc active">Lorem ipsum bla bla</div> <div class="phrase-doc">Lorem ipsum bla bla</div> <div class="phrase-doc">Lorem ipsum bla bla</div> <div class="phrase-doc">Lorem ipsum bla bla</div> </div> <button class="btn">Move</button>

cuando hago clic en el botón quiero mover el desplazamiento en la frase activa, uso este código

 this.el.nativeElement.querySelector('.phrase-doc.active').scrollIntoView();

y funciona bien solo si el contenedor está visible en la página, pero si el contenedor no está visible, el desplazamiento de la página se mueve sobre él, quiero que el desplazamiento de la página permanezca en la misma posición y solo el desplazamiento dentro del contenedor se mueva en la frase activa y el contenedor no debe desplazarse a la vista si no está visible.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

y el contenedor no debe desplazarse a la vista si no está visible.

Esto es problemático porque no hay una API que lo admita. El objetivo de scrollIntoView es hacer visible ese contenido.

Lo que podría hacer es obtener la posición de desplazamiento de cada ascendiente desplazable, guardar su valor y después de la llamada scrollIntoView restaurarlos.

El inconveniente de eso es que puede usar el desplazamiento smooth para los ascendentes desplazables (si es un requisito) y scrollIntoView (o al menos no sin trabajo adicional).

 document.querySelector('.btn').addEventListener('click', () => { // here you should check all ascendants of `container` that a scrollable // instead of doing that only for window const { scrollX, scrollY } = window document.querySelector('.phrase-doc.active').scrollIntoView({ block: 'nearest', inline: 'start' }); // here you should restore the scroll for all the found elements and not only window window.scroll(scrollX, scrollY) })
 .pre { height: 100vh; } .container { overflow: auto; height: 20px; } .post { height: 200vh; }
 <button class="btn">Move</button> <div class="pre"> </div> <div class="container"> <div class="phrase-doc">Lorem ipsum bla bla</div> <div class="phrase-doc">Lorem ipsum bla bla</div> <div class="phrase-doc">Lorem ipsum bla bla</div> <div class="phrase-doc active">1Lorem ipsum bla bla</div> <div class="phrase-doc">Lorem ipsum bla bla</div> <div class="phrase-doc">Lorem ipsum bla bla</div> <div class="phrase-doc">Lorem ipsum bla bla</div> </div> <div class="post"> </div>

about 4 years ago · Juan Pablo Isaza Report

0

Tienes que tener la etiqueta dom activa.

 document.querySelector('.btn').addEventListener('click',function (){ var eleActive = document.querySelector('.phrase-doc.active') eleActive.scrollIntoView() })
about 4 years ago · Juan Pablo Isaza Report
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!