javascript - 无法在 div 内移动滚动条

标签 javascript jquery html css scrollbar

我有一个 div,当用户从表单发送数据时,它会动态填充,它类似于聊天框。用户结束消息的地方,该消息显示在 div 中。现在这个 div 有一个应该留在底部的滚动条,但如果用户滚动,那么它应该留在用户保持它的那个位置

问题是,虽然滚动条停留在底部,但是当用户将其拉起时,它也会将自己拉到底部,用户无法使用它进行滚动。

div代码

var youInterval;

function startInterval() {

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

}

document.addEventListener('scroll', function(event) {
  if (event.target.id === 'scrollBottom') {
    clearInterval(youInterval);
  }
}, true);
startInterval();
.chatbox__body {
  overflow-y: auto;
}
<div class="chatbox__body" id="scrollbody"></div>

谁能帮我解决这个问题

最佳答案

你这里的条件是失败的 if (event.target.id === 'scrollBottom') {

scroll 生成的 event 是在文档上的,所以 event.target.id 实际上是在检查文档的 id 属性,它不存在.

你必须先在 body 中禁用 overflow,然后将 overflow 添加到 div

html,body{  height:100%; width:100%;overflow:hidden;}

.chatbox__body {
  overflow-y: auto;
  height:100%;
}

在你的 JS 中检查 if (event.target.id === 'scrollbody') {

片段

var youInterval;

function startInterval() {

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

}

document.addEventListener('scroll', function(event) {
  debugger;
  if (event.target.id === 'scrollbody') {
    clearInterval(youInterval);
  }
}, true);
startInterval();
html,body{  height:100%; width:100%;overflow:hidden;}
.chatbox__body {
  overflow-y: auto;
  height:100%;
}

#content{
 height:200%;
 width:100%;
 background-color:red;
}
<div class="chatbox__body" id="scrollbody">
  <div id="content"></div>
</div>

关于javascript - 无法在 div 内移动滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44497566/

相关文章:

javascript - 使用 jQuery 从子弹出窗口动态填充父窗口上的选择选项

javascript - 为接受事件的函数调用设置超时在 IE7 中不起作用

c# - 如何在加载某些控件时显示进度条?

javascript - 如何在函数调用 javascript 中使用 var ejs

javascript - HtmlService GAS 在html表单之间传递变量

html - 将绝对定位的 DIV *完全* 放在相对定位的父 DIV 中?

html - 如何在 Bootstrap 中将导航栏品牌居中

javascript - 重复背景直到达到高度

javascript - 是否可以使用 HTML、CSS 和 Javascript 来创建可以访问 Iphone 蓝牙配对的 Iphone 应用程序?

java - 需要一个用 Java 编写的 Java 和 Javascript diff 工具