要制作一个在线聊天的程序,在做最后的修饰时,需要对获得的信息即时滚动以保证用户总能看到最新消息。 聊天程序是基于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方法模拟点击滚动到锚所在位置 <script language="javascript1.2" type="text/javascript"> function onGetMessage(context) { msg.innerHTML+=context; msg_end.click(); } </script> <div style="width:500px;overflow:auto"> <div id="msg" style="overflow:hidden;width:480px;"></div> <div><a id="msg_end" name="1" href="#1"> </a></div> </div> 方法二: 利用DIV的scrollIntoView方法,将最底端滚动到可视位置 [list=1]<script language="javascript1.2" type="text/javascript"> function onGetMessage(context) { msg.innerHTML+=context; msg_end.scrollIntoView(); } </script> <div style="width:500px;overflow:auto"> <div id="msg" style="overflow:hidden;width:480px;"></div> <div id="msg_end" style="height:0px; overflow:hidden"></div> </div> 方法三: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name="keywords" content="滚动条, scrollbar, 页面底部, 聊天窗口, " /> <meta name="description" content="有些时候(如开发聊天程序),我们需要将将滚动条(scrollbar)保持在最底部,比如聊天窗口,最新发出和收到的信息要显示在最下方,如果要看到最下方的内容,就必须保证滚动条保持在最底部。" /> <title>将滚动条(scrollbar)保持在最底部的方法 - 滚动条, scrollbar, 页面底部, 聊天窗口, </title> </head> <body> <div id="example"> <h3 id="example_title">将滚动条(scrollbar)保持在最底部的方法</h3> <div id="example_main"> <!--************************************* 实例代码开始 *************************************--> <script type="text/javascript"> function add() { var now = new Date(); var div = document.getElementById('scrolldIV'); div.innerHTML = div.innerHTML + 'time_' + now.getTime() + '<br />'; div.scrollTop = div.scrollHeight; } </script> <span class="notice">请点击“插入一行”按钮,插入最新信息,当出现滚动条时,滚动条将自动保持在底部。</span><br /> <div id="scrolldIV" style="overflow:auto; height: 100px; width: 400px; border: 1px solid #999;"> </div> <input type="button" value="插入一行" onclick="add();"> <!--************************************* 实例代码结束 *************************************--> </div> </div> </body> </html> 方法4: 这个比较复杂也比较灵活一点,就是利用DIV+JS+图片构造一个滚动条,当然了图片是怎么好看怎么用了。 主要部分就是外层的DIV加个overflow:hidden属性,通过js代码调整内层DIV的margin-left和margin-top来控制内容的滚动,由于上面两种方法已经可以满足需求,所以这种方法没具体做深究,有兴趣的可以试一下
相关推荐
让DIV的滚动条自动滚动到最底部.md
聊天程序是基于AJAX设计的,没有用框架,消息容器是一个DIV,所以问题就在于如何控制DIV的滚动条。 但同样的代码拿到我这里却完全失效,又仔细查了下资料说XHTML标准下scrollTop的值恒为0,解决办法是使用 document....
单个div滚动条初始化到最低位置
当滚动条滑到最低端显示div
有个需求,要在显示聊天框时,固定框的大小为300px高度,宽度50px左右,然后当聊天内容超出宽度或者高度时...实现div滚动条默认最底部以及默认最右边</title> [removed][removed] <script type="text/javascr
elementUI滚动条,点击dom元素滚动到指定位置
今天小编就为大家分享一篇vue 监听某个div垂直滚动条下拉到底部的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
将div内容滚动到div的最有一行,类似于qq聊天窗口。
//每次页面渲染完之后滚动条在最底部 updated:function(){ this.scrollToBottom(); }, methods:{ scrollToBottom: function () { this.$nextTick(() => { var container = this.$el.querySelector(".chatBox-...
angular6,div 滚动条判断是否触底,用于滚动加载数据。
代码如下: $(“#feedbackContainer”).scrollTop($(“#feedbackContainer”).height());
下面小编就为大家带来一篇用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
下面笔者就为大家分享一篇实现div内部滚动条滚动到底部和顶部的代码,代码简洁,具有很好的参考价值,希望对大家有所帮助
下面小编就为大家带来一篇一个用jquery写的判断div滚动条到底部的方法【推荐】。小编觉得挺不错的,现在分享给大家,也给大家做个参考,一起跟随小编过来看看吧
一个比较特殊的客户要求,在一个页面用表格显示数据,数据量不是很多,不希望使用浏览器的滚动条,只能在Div中滚动table中的数据,但是有个特殊的要求,就是必须将滚动条自动滚动到底部
复制代码代码如下:#totop{position:fixed;right:10px;bottom:10px;width:100px;height:100px;}