让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 相关文章推荐
fix-ie5.js扩展在IE5下不能使用的几个方法
Aug 20 Javascript
$.ajax json数据传递方法
Nov 19 Javascript
JavaScript 自动完成脚本整理(33个)
Oct 20 Javascript
ActiveX控件与Javascript之间的交互示例
Jun 04 Javascript
JavaScript学习总结之JS、AJAX应用
Jan 29 Javascript
JQuery在循环中绑定事件的问题详解
Jun 02 Javascript
jQuery用FormData实现文件上传的方法
Nov 21 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
Mar 08 Javascript
老生常谈angularjs中的$state.go
Apr 24 Javascript
Angularjs修改密码的实例代码
May 26 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
Sep 02 Javascript
node.js Promise对象的使用方法实例分析
Dec 26 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
2019年漫画销量排行榜:鬼灭登顶 海贼单卷制霸 尾田盛赞鬼灭
2020/03/08 日漫
不用GD库生成当前时间的PNG格式图象的程序
2006/10/09 PHP
PHP的开发框架的现状和展望
2007/03/16 PHP
PHP中调用SVN命令更新网站方法
2015/01/07 PHP
微信支付PHP SDK之微信公众号支付代码详解
2015/12/09 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
浅谈laravel5.5 belongsToMany自身的正确用法
2019/10/17 PHP
仅IE不支持setTimeout/setInterval函数的第三个以上参数
2011/05/25 Javascript
js时间日期和毫秒的相互转换
2013/02/22 Javascript
js实现页面跳转重定向的几种方式
2014/05/29 Javascript
浅谈javascript的调试
2015/01/28 Javascript
jquery使用经验小结
2015/05/20 Javascript
js正则表达式验证邮件地址
2015/11/12 Javascript
jQuery组件easyui基本布局实现代码
2016/08/25 Javascript
js HTML5多图片上传及预览实例解析(不含前端的文件分割)
2016/08/26 Javascript
Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容
2017/06/17 Javascript
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
Vue-cli3项目引入Typescript的实现方法
2019/10/18 Javascript
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
Python中处理unchecked未捕获异常实例
2015/01/17 Python
python实现文件助手中查看微信撤回消息
2019/04/29 Python
Django模型序列化返回自然主键值示例代码
2019/06/12 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
python自动下载图片的方法示例
2020/03/25 Python
python从Oracle读取数据生成图表
2020/10/14 Python
利用CSS3实现平移动画效果示例代码
2016/10/12 HTML / CSS
英国最大的经认证的有机超市:Planet Organic
2018/02/02 全球购物
DC Shoes荷兰官方网站:美国极限运动品牌
2019/10/22 全球购物
财务管理职业生涯规划书
2014/02/26 职场文书
爱国卫生月活动总结范文
2014/04/25 职场文书
经贸专业毕业生求职信范文
2014/05/01 职场文书
中国文明网向国旗敬礼寄语大全
2014/09/27 职场文书
学习雷锋精神倡议书
2015/04/27 职场文书
2015年行政部工作总结
2015/04/28 职场文书
2015年财务科工作总结范文
2015/05/13 职场文书
Python机器学习实战之k-近邻算法的实现
2021/11/27 Python