Javascript Typed.js-除非用户与滚动条交互,否则在div增大时将div滚动到底?

Javascript Typed.js-除非用户与滚动条交互,否则在div增大时将div滚动到底?,javascript,jquery,html,css,scroll,Javascript,Jquery,Html,Css,Scroll,我正在使用Typed.js向div动态添加文本行。几秒钟后,固定高度div会生成一个滚动条。我想保持滚动条滚动到底部,因为内容不断添加,而无需编辑Typed.js库的代码 我能够通过以下代码实现这一点: window.setInterval(function() { var elem = document.getElementById('scrollBottom'); elem.scrollTop = elem.scrollHeight; }, 500); 但是,如果用户试图向上滚动,

我正在使用Typed.js向div动态添加文本行。几秒钟后,固定高度div会生成一个滚动条。我想保持滚动条滚动到底部,因为内容不断添加,而无需编辑Typed.js库的代码

我能够通过以下代码实现这一点:

window.setInterval(function() {
  var elem = document.getElementById('scrollBottom');
  elem.scrollTop = elem.scrollHeight;
}, 500);
但是,如果用户试图向上滚动,代码显然会迫使div向后滚动到底部。相反,我希望它允许用户自由滚动,如果他们愿意(但默认情况下,没有用户交互,滚动到底部)

问题是:我不能每次添加一行新代码时都执行滚动;基本上,我不知道何时会增加。这就是我最初想到使用频繁间隔的原因(如上所示)


如果用户单击div的滚动条,是否有方法结束上述功能?

简单。大概是这样的:

    var youInterval; 

    function startInterval(){

        youInterval = setInterval(function() {
           var elem = document.getElementById('scrollBottom');
           elem.scrollTop = elem.scrollHeight;
        }, 500);

    }

    //If user scrolls, stop interval
    document.addEventListener('scroll', function (event) {
      if (event.target.id === 'scrollBottom') { // or any other filtering condition        

            clearInterval(youInterval);
      }
    }, true /*Capture event*/);

    //And start it whenever you need
    startInterval();

工作得很有魅力。非常感谢:)