让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 相关文章推荐
用 javascript 实现的点击复制代码
Mar 24 Javascript
用js统计用户下载网页所需时间的脚本
Oct 15 Javascript
javascript跨域刷新实现代码
Jan 01 Javascript
js内置对象 学习笔记
Aug 01 Javascript
全面理解JavaScript中的闭包
May 12 Javascript
jQuery扩展+xml实现表单验证功能的方法
Dec 25 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
Mar 29 jQuery
js指定步长实现单方向匀速运动
Jul 17 Javascript
浅谈JS封闭函数、闭包、内置对象
Jul 18 Javascript
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
Mar 19 Javascript
原生js生成图片验证码
Oct 11 Javascript
vue elementUI批量上传文件
Apr 26 Vue.js
浅谈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 模拟登陆MSN并获得用户信息
2009/05/16 PHP
PHP 柱状图实现代码
2009/12/04 PHP
phpMyadmin 用户权限中英对照
2010/04/02 PHP
基于PHP CURL用法的深入分析
2013/06/09 PHP
php多文件上传实现代码
2014/02/20 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
2009/04/01 Javascript
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
2009/11/26 Javascript
JavaScript下通过的XMLHttpRequest发送请求的代码
2011/06/28 Javascript
关于setInterval、setTimeout在jQuery中的使用注意事项
2011/09/28 Javascript
jquery插件制作 自增长输入框实现代码
2012/08/17 jQuery
Js保留小数点的4种效果实现代码分享
2014/04/12 Javascript
Javascript动态创建表格及删除行列的方法
2015/05/15 Javascript
jQuery插件实现静态HTML验证码校验
2015/11/06 Javascript
JS模拟实现哈希表及应用详解
2018/05/04 Javascript
详解React中setState回调函数
2018/06/14 Javascript
vue实现页面滚动到底部刷新
2019/08/16 Javascript
Vue实现点击按钮复制文本内容的例子
2019/11/09 Javascript
Python 初始化多维数组代码
2008/09/06 Python
python实现绘制树枝简单示例
2014/07/24 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
Python基于回溯法子集树模板解决数字组合问题实例
2017/09/02 Python
Python如何快速上手? 快速掌握一门新语言的方法
2017/11/14 Python
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
2019/04/04 Python
Python创建一个元素都为0的列表实例
2019/11/28 Python
详解python 中in 的 用法
2019/12/12 Python
Python Opencv图像处理基本操作代码详解
2020/08/31 Python
python 三种方法实现对Excel表格的读写
2020/11/19 Python
《学会待客》教学反思
2014/02/22 职场文书
医院护士见习期自我鉴定
2014/04/10 职场文书
《月亮湾》教学反思
2014/04/14 职场文书
公司表扬信格式
2015/05/04 职场文书
小学推普周活动总结
2015/05/07 职场文书
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
2022/04/24 Vue.js