让DIV的滚动条自动滚动到最底部的3种方法(推荐)


Posted in Javascript onSeptember 24, 2016

要制作一个在线聊天的程序,在做最后的修饰时,需要对获得的信息即时滚动以保证用户总能看到最新消息。

聊天程序是基于AJAX设计的,没有用框架,消息容器是一个DIV,所以问题就在于如何控制DIV的滚动条。

但同样的代码拿到我这里却完全失效,又仔细查了下资料说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>

以上就是小编为大家带来的让DIV的滚动条自动滚动到最底部的3种方法(推荐)的全部内容了,希望对大家有所帮助,多多支持三水点靠木~

Javascript 相关文章推荐
js中更短的 Array 类型转换
Oct 30 Javascript
javascript正则表达式基础知识入门
Apr 20 Javascript
浅谈$(document)和$(window)的区别
Jul 15 Javascript
使用递归遍历对象获得value值的实现方法
Jun 14 Javascript
jQuery使用getJSON方法获取json数据完整示例
Sep 13 Javascript
将鼠标焦点定位到文本框最后(代码分享)
Jan 11 Javascript
Bootstrap列表组学习使用
Feb 09 Javascript
jQuery实现手势解锁密码特效
Aug 14 jQuery
Vue中的无限加载vue-infinite-loading的方法
Apr 08 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
May 28 Javascript
Vue的双向数据绑定实现原理解析
Feb 17 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
Mar 04 Javascript
浅谈js常用内置方法和对象
Sep 24 #Javascript
js原生跨域_用script标签的简单实现
Sep 24 #Javascript
js内置对象处理_打印学生成绩单的简单实现
Sep 24 #Javascript
用js实现简单算法的实例代码
Sep 24 #Javascript
jQuery实现移动端手机商城购物车功能
Sep 24 #Javascript
AngularJS实现星星等级评分功能
Sep 24 #Javascript
完美的js div拖拽实例代码
Sep 24 #Javascript
You might like
PHP实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
2012/07/02 PHP
PHP实现获取FLV文件的时间
2015/02/10 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
phpStorm2020 注册码
2020/09/17 PHP
JS BASE64编码 window.atob(), window.btoa()
2021/03/09 Javascript
javascript delete 使用示例代码
2010/03/29 Javascript
javascript分页代码(当前页码居中)
2012/09/20 Javascript
javascript继承机制实例详解
2014/11/20 Javascript
JavaScript实现仿网易通行证表单验证
2015/05/25 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
2015/11/20 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
JS修改地址栏参数实例代码
2016/06/14 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
2016/09/06 Javascript
微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能
2017/08/16 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
2019/09/10 Javascript
[02:27]《DAC最前线》之附加赛征程
2015/01/29 DOTA
python中OrderedDict的使用方法详解
2017/05/05 Python
python中partial()基础用法说明
2018/12/30 Python
pyqt5与matplotlib的完美结合实例
2019/06/21 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
pytorch进行上采样的种类实例
2020/02/18 Python
Python编程快速上手——强口令检测算法案例分析
2020/02/29 Python
pytorch 中的重要模块化接口nn.Module的使用
2020/04/02 Python
keras topN显示,自编写代码案例
2020/07/03 Python
基于OpenCV的网络实时视频流传输的实现
2020/11/15 Python
pycharm 快速解决python代码冲突的问题
2021/01/15 Python
杭州龙健科技笔试题.net部分笔试题
2016/01/24 面试题
班长岗位职责
2013/11/10 职场文书
给孩子的新年寄语
2014/04/08 职场文书
本科毕业生求职自荐信
2014/04/09 职场文书
学位证书委托书
2014/09/30 职场文书
乡镇2014法制宣传日活动总结
2014/11/01 职场文书
大客户经理岗位职责
2015/04/09 职场文书
php 解析非标准json、非规范json
2021/04/01 PHP
JavaScript ES6的函数拓展
2022/01/18 Javascript