让DIV的滚动条自动滚动到最底部的3种方法(推荐)
要制作一个在线聊天的程序,在做最后的修饰时,需要对获得的信息即时滚动以保证用户总能看到最新消息。
聊天程序是基于AJAX设计的,没有用框架,消息容器是一个DIV,所以问题就在于如何控制DIV的滚动条。
但同样的代码拿到我这里却完全失效,又仔细查了下资料说XHTML标准下scrollTop的值恒为0,解决办法是使用document.documentElement.scrollTop代替document.body.scrollTop,讲了半天所解决的是整个页面的滚动条。这个方法我是用不了了,因为不是框架结构,所以不可能用body的滚动条控制浏览信息。
网上关于这个问题的资料很少,连CSDN上也说没有办法。
不死心,后来查DHTML手册得知DIV有个doScroll方法可以用来模拟滚动条点击,但很令人失望,到了我这里又是完全失效,难道又不被XHTML支持?
最后终于被我找到三种控制DIV内容滚动的方法:
方法一:
使用锚标记要滚动到的位置,然后通过click方法模拟点击滚动到锚所在位置
<scriptlanguage="javascript1.2"type="text/javascript"> functiononGetMessage(context) { msg.innerHTML+=context; msg_end.click(); } </script> <divstyle="width:500px;overflow:auto"> <divid="msg"style="overflow:hidden;width:480px;"></div> <div><aid="msg_end"name="1"href="#1"> </a></div> </div>
方法二:
利用DIV的scrollIntoView方法,将最底端滚动到可视位置[list=1]<script
language="javascript1.2" type="text/javascript"> functiononGetMessage(context) { msg.innerHTML+=context; msg_end.scrollIntoView(); } </script> <divstyle="width:500px;overflow:auto"> <divid="msg"style="overflow:hidden;width:480px;"></div> <divid="msg_end"style="height:0px;overflow:hidden"></div> </div>
方法三:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"> <head> <metahttp-equiv="content-type"content="text/html;charset=utf-8"/> <metaname="keywords"content="滚动条,scrollbar,页面底部,聊天窗口,"/> <metaname="description"content="有些时候(如开发聊天程序),我们需要将将滚动条(scrollbar)保持在最底部,比如聊天窗口,最新发出和收到的信息要显示在最下方,如果要看到最下方的内容,就必须保证滚动条保持在最底部。"/> <title>将滚动条(scrollbar)保持在最底部的方法-滚动条,scrollbar,页面底部,聊天窗口,</title> </head> <body> <divid="example"> <h3id="example_title">将滚动条(scrollbar)保持在最底部的方法</h3> <divid="example_main"> <!--*************************************实例代码开始*************************************--> <scripttype="text/javascript"> functionadd() { varnow=newDate(); vardiv=document.getElementById('scrolldIV'); div.innerHTML=div.innerHTML+'time_'+now.getTime()+'<br/>'; div.scrollTop=div.scrollHeight; } </script> <spanclass="notice">请点击“插入一行”按钮,插入最新信息,当出现滚动条时,滚动条将自动保持在底部。</span><br/> <divid="scrolldIV"style="overflow:auto;height:100px;width:400px;border:1pxsolid#999;"> </div> <inputtype="button"value="插入一行"onclick="add();"> <!--*************************************实例代码结束*************************************--> </div> </div> </body> </html>
以上就是小编为大家带来的让DIV的滚动条自动滚动到最底部的3种方法(推荐)的全部内容了,希望对大家有所帮助,多多支持毛票票~