您好,欢迎访问一九零五行业门户网

javascript 让DIV的滚动自动滚动到最底部 - 4种方法

要制作一个在线聊天的程序,在做最后的修饰时,需要对获得的信息即时滚动以保证用户总能看到最新消息。
聊天程序是基于ajax设计的,没有用框架,消息容器是一个div,所以问题就在于如何控制div的滚动条。
网上有资料介绍说通过设置scrolltop属性来控制滚动条位置,具体可参见:
http://hi.baidu.com/chen1345789/blog/item/de727bfb45587b176d22eba1.html
但同样的代码拿到我这里却完全失效,又仔细查了下资料说xhtml标准下scrolltop的值恒为0,解决办法是使用document.documentelement.scrolltop代替document.body.scrolltop,讲了半天所解决的是整个页面的滚动条。这个方法我是用不了了,因为不是框架结构,所以不可能用body的滚动条控制浏览信息。
网上关于这个问题的资料很少,连csdn上也说没有办法。
不死心,后来查dhtml手册得知div有个doscroll方法可以用来模拟滚动条点击,但很令人失望,到了我这里又是完全失效,难道又不被xhtml支持?
最后终于被我找到三种控制div内容滚动的方法:
方法一:
使用锚标记要滚动到的位置,然后通过click方法模拟点击滚动到锚所在位置
 

方法二:
利用div的scrollintoview方法,将最底端滚动到可视位置 [list=1]

方法三:
将滚动条(scrollbar)保持在最底部的方法 - 滚动条, scrollbar, 页面底部, 聊天窗口, 将滚动条(scrollbar)保持在最底部的方法请点击“插入一行”按钮,插入最新信息,当出现滚动条时,滚动条将自动保持在底部。

方法4:
这个比较复杂也比较灵活一点,就是利用div+js+图片构造一个滚动条,当然了图片是怎么好看怎么用了。
主要部分就是外层的div加个overflow:hidden属性,通过js代码调整内层div的margin-left和margin-top来控制内容的滚动,由于上面两种方法已经可以满足需求,所以这种方法没具体做深究,有兴趣的可以试一下
其它类似信息

推荐信息