Javascript滚动条变量工作不正常

Javascript滚动条变量工作不正常,javascript,jquery,Javascript,Jquery,我正在开发一个聊天系统。我需要滚动条保持在底部,除非用户向上滚动,如果用户向上滚动,他们应该保持在原来的位置,除非他们向下滚动并锁定回滚动。我相信这就是所谓的粘性卷轴 我编写的Javascript并没有保存旧的高度。控制台显示,var oldHeight=out.scrollHeight-out.clientHeight;当问题出现时,它应该工作良好 我想知道是否有人知道更好的方法,或者是否有人知道为什么var不起作用。谢谢 函数my_函数{ var out=document.getElemen

我正在开发一个聊天系统。我需要滚动条保持在底部,除非用户向上滚动,如果用户向上滚动,他们应该保持在原来的位置,除非他们向下滚动并锁定回滚动。我相信这就是所谓的粘性卷轴

我编写的Javascript并没有保存旧的高度。控制台显示,var oldHeight=out.scrollHeight-out.clientHeight;当问题出现时,它应该工作良好

我想知道是否有人知道更好的方法,或者是否有人知道为什么var不起作用。谢谢

函数my_函数{ var out=document.getElementByIdMess2; var oldHeight=out.scrollHeight-out.clientHeight; $'Mess2'。加载Mess2+'message_area';
var isScrolledToBottom=out.scrollHeight-out.clientHeight>=oldHeight&&oldHeight如注释中所述,使用$chat.scrollTop$'chat'[0]。scrollHeight;要滚动,滚动的触发应该由用户是否已向上滚动确定,如果用户已向下滚动,则再次启用滚动

例如:

$function{ var chatElm=$chat; //打开/关闭滚动 var autoScroll=true; chatElm.scroll函数{ autoScroll=false; //如果高度==滚动位置启用滚动,即在底部 如果chatElm.scrollTop+chatElm.height==chatElm[0]。scrollHeight{ autoScroll=true; } }; //滚动到div的底部 函数滚动到底部{ scrollTopchatElm[0]。scrollHeight; } var i=0; 设置间隔函数{ i++; 附录树+; //滚动还是不滚动 !autoScroll | | scrollToBottom; }, 300; } 聊天{ 高度:100px; 背景:ccc; 溢出-y:自动 }
?不要测量客户机/文档/窗口高度,而是测量元素的滚动高度..因此elm.scrollTopelm.scrollHeight足以将其保持在底部您建议将:elm.scrollTopelm.scrollHeight放置在代码中的何处,无论我放置在何处,它都会显示为错误。@MtnBros请参阅答案,希望有帮助。同时,它在演示中起作用,在由于我的网站不起作用,我也尝试了一个更简单的网站。我把简单的网站放在这里:livey.ml基本上,它可以在stackoverflow上工作,但即使使用.html,它是唯一的代码,它会被破坏并停留在底部,你也不能再向上滚动。如果看不到代码或你的更改,我真的帮不了你。上面的代码或更改在所有浏览器/网站上都能工作,是吗你放了一个或类似的网站,这样可以看到问题。应该显示问题,它发生在Firefox和Chome中。这是因为div是在js代码之后,或者将js移到底部,或者在onload中包装