首页 > 解决方案 > 如果用户没有向上滚动,则在 js 中滚动元素

问题描述

我正在尝试在我的 vue 应用程序中制作某种控制台。当新元素添加到 ui 控制台(只是一个带有条目列表的元素)时,我已经设法向下滚动,方法是使用:

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();
      })
    }
  }   
}

我需要观察者,因为在滚动到最后一个元素之前,vue 必须在将新元素添加到列表后更新 ui。否则它将不在 ui 中,我将无法滚动到它。

问题

如果用户使用滚动条向上滚动(检查上面的一些控制台条目),我不希望它滚动。我不知道如何实现。我已经尝试检测滚动条是否在底部,如果它不在底部 => 我不会滚动到最后一个元素。但我没有做到这一点。

有任何想法吗?这是我的应用程序:https ://gitlab.com/omeldar/advent-of-code

标签: javascriptvue.jsscroll

解决方案


推荐阅读