Javascript 如何设置滚动条的默认位置

Javascript 如何设置滚动条的默认位置,javascript,css,scrollbar,chat,Javascript,Css,Scrollbar,Chat,在我的网页上有一个聊天窗口。填写聊天日志后,用户使用滚动条在消息之间导航。我希望我的聊天框始终显示位于底部的最后一条消息。如何使用CSS、JavaScript实现这一点 谢谢, TomerDOM元素(无论如何都是好的)支持一个名为scrollIntoView()的方法。如果您有一个对应于最后一个聊天条目(a或其他内容)的DOM元素的引用,您可以使用scrollIntoView()告诉浏览器应该滚动其周围的内容,以便使可见 现在,面对一些复杂的页面布局(或者可能不是那么复杂;也许只是不走运),我不

在我的网页上有一个聊天窗口。填写聊天日志后,用户使用滚动条在消息之间导航。我希望我的聊天框始终显示位于底部的最后一条消息。如何使用CSS、JavaScript实现这一点

谢谢, Tomer

DOM元素(无论如何都是好的)支持一个名为
scrollIntoView()
的方法。如果您有一个对应于最后一个聊天条目(a
或其他内容)的DOM元素的引用,您可以使用
scrollIntoView()
告诉浏览器应该滚动其周围的内容,以便使
可见


现在,面对一些复杂的页面布局(或者可能不是那么复杂;也许只是不走运),我不得不面对Internet Explorer想要滚动错误的东西,或者只是对页面做一些奇怪的事情。类似于
scrollIntoView()
的事情的本质是让浏览器决定它想要如何进行滚动。一般来说,在一个简单的滚动容器中包含相当简单的内容(基本上是一个带有“overflow:auto”和固定高度的容器),它确实可以工作。

即使你不是你问题的标签,这里是我用于聊天web应用程序的jQuery解决方案:

//Where chat_message_tray is the scrollable div in your chat
function chat_scroll(chat_messages_tray){
   var scroll_amount = $(chat_messages_tray).attr("scrollHeight") -  $(chat_messages_tray).height();

   $(chat_messages_tray).animate({ scrollTop: scroll_amount}, 500);
}


谷歌的第三个结果——“div滚动条底部”

你的聊天文本是在iframe还是div中?聊天框是div.ok,但每条消息都在div中,其id为“message”(与CSS保持相同的样式),因此我如何克服这个问题?首先,你绝对不应该对每条消息重复使用相同的“id”值;这是无效的标记,可能会导致各种问题。如果每条消息都需要一个“id”,那么就给它们一个唯一的“id”;如果需要用CSS控制所有消息,就使用一个“class”值。要查找最后一条消息,可以从容器中使用类似于
getElementsByTagName()
的内容,然后在“className”属性中查找具有适当字符串的元素。最后一个将是,嗯,最后一个:-)虽然它很难看,但我不是专业人士,我只想将我的滚动条设置为最底部的状态。。。还有别的想法吗?谢谢。嗯,我想没有更简单的办法了。还有其他API可以使用,但您仍然需要找到您的元素。除了这个滚动条,还有很多原因,请不要在多个元素上重复“id”值-这完全是错误的。是的,它需要JavaScript jQuery库,如果你不使用jQuery,你可以让JS专家将其翻译成纯JavaScript,或者你真的应该开始使用jQueryOfcourse我使用最新的jQuery版本,但它不起作用。如何调用此函数?我是否需要这样称呼它:document.onload=chat\u scroll(“我的chat\u框架”);在head标签之间?不,只需从任何jQuery块代码调用plain函数,例如chat_scroll(#messages_tray)你有到你的站点的链接吗?没有,它在我的本地主机上。如果不是那么简单,我可以放弃:)