Estoy tratando de hacer algún tipo de consola en mi aplicación vue. Ya logré desplazarme hacia abajo cuando se agregan nuevos elementos a la consola ui (solo un elemento con una lista de entradas) usando:
watch: { uilogs: { handler: function() { // if last not in view and no focus on scrollbar detected, continue: this.$nextTick(() => { Array.from(document.querySelectorAll('#uiconsole > div')) .pop() .scrollIntoView(); }) } } }Necesito el observador porque vue tiene que actualizar la interfaz de usuario después de agregar un nuevo elemento a la lista antes de desplazarse hasta ese último elemento. De lo contrario, no estaría en la interfaz de usuario y no podría desplazarme hasta él.
El problema
No quiero que se desplace si el usuario usa la barra de desplazamiento para desplazarse hacia arriba (para verificar algunas de las entradas de la consola anteriores). No sé cómo lograr eso. Ya intenté detectar si la barra de desplazamiento está en la parte inferior, si no está en la parte inferior => No me desplazaría hasta el último elemento. Pero no logré hacer eso.
¿Algunas ideas? Aquí está mi aplicación: https://gitlab.com/omeldar/advent-of-code