Editar: el uso del método innerText de Coll junto con el comportamiento de desplazamiento de Icekid resolvió esto. ¡Gracias!
Estoy usando set innerHTML para aplicar la etiqueta <mark> en una serie de divs. Por ejemplo, el usuario presiona una tecla y la <mark> pasa de:
<mark>This is a demonstration.</mark> To show what I mean.a
<mark>This is a demonstration. To show what I mean.</mark>Esto funciona muy bien, excepto cuando se trata de desplazamiento. El texto que se marca es variable y, a veces, requiere el div para desplazarse. Yo uso el siguiente JavaScript para desplazar la vista:
function prompt_scroll() { document.getElementById("next").scrollIntoView({ behavior: 'smooth'})} El problema es que cada vez que esto sucede, el HTML interno recién configurado comienza a desplazarse hacia arriba y luego se desplaza hasta el final de la etiqueta <mark> . ¡Ese tipo de saltar y luego desplazarse es suficiente para marear a alguien!
La solución que creo que necesito es configurar el HTML interno ya desplazado al mismo punto que el código JS que compartí anteriormente. Simplemente no sé cómo lograr esto o si hay una mejor solución para evitar que se desplace hacia la parte superior. Agregaré que todavía estoy aprendiendo las cuerdas con JS, por lo que es posible que necesite un poco de información adicional sobre cómo y por qué. Toda orientación es apreciada.
Puedes añadir
yourElememt.scrollIntoView({behavior:"smooth", inline:"center",block:"center"})En lugar del "centro" puedes usar
//start, "end" ,or "nearest"Para fijarlo en la posición que desee
Creo que deberías usar el nearest para tu caso.