Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

182
Visualizações
HTML: desplazarse línea por línea

Tengo una lista desordenada con un número variable de elementos de lista. El <ul> tiene una altura fija (en realidad, la altura de una sola línea de texto) y se establece en overflow-y: scroll .

Cuando muevo la rueda del mouse, se recorre una cierta distancia vertical. Me gustaría que se desplazara exactamente línea por línea, para garantizar que <li> siempre esté correctamente centrado en la parte visible de <ul> .

Comportamiento incorrecto: ingrese la descripción de la imagen aquí

 :root { --default-line-height: 24px; } .myUl { background-color: lightblue; height: var(--default-line-height); list-style-type: none; overflow-y: scroll; outline: 1px solid black; } .myLi { font-size: var(--default-line-height); }
 <ul class="myUl"> <li class="myLi">Lorem ipsum dolor sit amet</li> <li class="myLi">Aenean commodo ligula eget dolor.</li> <li class="myLi">Cum sociis natoque penatibus</li> <li class="myLi">Donec quam felis, ultricies nec</li> <li class="myLi">Nulla consequat massa quis enim.</li> <li class="myLi">Donec pede justo, fringilla vel</li> <li class="myLi">In enim justo, rhoncus ut</li> </ul> <p>Please scroll the blue area.</p>


Jugué con scroll-snap pero sin éxito real. La animación "se siente" incómoda y todavía se desplaza por varias líneas. Probablemente podría construir algo condesplazamiento , pero eso parece innecesariamente engorroso.

Parecía razonable poder desplazarse línea por línea bajo ciertas condiciones. Los controles tipo lista (por ejemplo, los menús desplegables) muestran este comportamiento en muchos marcos. No hubiera pensado que esto necesitaría más que un CSS inteligente...


Actualización: la respuesta de Feroz a continuación solo resuelve el aspecto del problema. Todavía es posible desplazarse por varias líneas de una sola vez.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Por favor revise mi fragmento. Ahora puede desplazarse línea por línea.

 :root { --default-line-height: 28px; } .myUl { background-color: lightblue; height: var(--default-line-height); list-style-type: none; overflow-y: scroll; outline: 1px solid black; scroll-snap-type: y mandatory; } .myLi { font-size: 24px; line-height: var(--default-line-height); scroll-snap-align: start; scroll-snap-stop: normal; }
 <ul class="myUl"> <li class="myLi">Lorem ipsum dolor sit amet</li> <li class="myLi">Aenean commodo ligula eget dolor.</li> <li class="myLi">Cum sociis natoque penatibus</li> <li class="myLi">Donec quam felis, ultricies nec</li> <li class="myLi">Nulla consequat massa quis enim.</li> <li class="myLi">Donec pede justo, fringilla vel</li> <li class="myLi">In enim justo, rhoncus ut</li> </ul> <p>Please scroll the blue area.</p>

about 4 years ago · Juan Pablo Isaza Relatório

0

Encuentra la solución en https://css-tricks.com/practical-css-scroll-snapping/

 <div class="container"> <section class="child"></section> <section class="child"></section> <section class="child"></section> <p>...</p> </div> .container { scroll-snap-type: y mandatory; } .child { scroll-snap-align: start; }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda