让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 相关文章推荐
Prototype使用指南之range.js
Jan 10 Javascript
JS编程小常识很有用
Nov 26 Javascript
javascrip关于继承的小例子
May 10 Javascript
js获得当前时区夏令时发生和终止的时间代码
Feb 23 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
Apr 17 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
Mar 20 Javascript
js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别?
Nov 18 Javascript
jQuery插件datatables使用教程
Apr 21 Javascript
详解Bootstrap插件
Apr 25 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
May 17 Javascript
js正则表达式验证密码强度【推荐】
Mar 03 Javascript
Vue的土著指令和自定义指令实例详解
Feb 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版自动生成文章摘要
2008/07/23 PHP
php实现JWT(json web token)鉴权实例详解
2019/11/05 PHP
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
2008/11/03 Javascript
JS 文件本身编码转换 图文教程
2009/10/12 Javascript
javascript 从if else 到 switch case 再到抽象
2010/07/17 Javascript
passwordStrength 基于jquery的密码强度检测代码使用介绍
2011/10/08 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
2014/04/04 Javascript
js获取select默认选中的Option并不是当前选中值
2014/05/07 Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
2016/02/25 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
js时间比较 js计算时间差的简单实现方法
2016/08/26 Javascript
原生JS实现图片翻书效果
2017/02/16 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
2018/03/08 Javascript
vue的for循环使用方法
2019/02/12 Javascript
Vue中的情侣属性$dispatch和$broadcast详解
2019/03/07 Javascript
解决layer弹出层自适应页面大小的问题
2019/09/16 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
2019/12/01 Javascript
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
如何在vue中使用kindeditor富文本编辑器
2020/12/19 Vue.js
使用Python对Csv文件操作实例代码
2017/05/12 Python
Python实现判断给定列表是否有重复元素的方法
2018/04/11 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
对python for 文件指定行读写操作详解
2018/12/29 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
2020/04/22 Python
利用python制作拼图小游戏的全过程
2020/12/04 Python
CSS3制作彩色进度条样式的代码示例分享
2016/06/23 HTML / CSS
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
全球知名的婚恋交友网站:Match.com
2017/01/05 全球购物
英国巧克力贸易公司:Chocolate Trading Company
2017/03/21 全球购物
船舶专业个人求职信范文
2014/01/02 职场文书
婚假请假条怎么写
2014/04/10 职场文书
家长对老师的评语
2014/04/18 职场文书
基层党员公开承诺书
2014/05/29 职场文书
创卫工作总结2015
2015/04/22 职场文书
CSS实现漂亮的时钟动画效果的实例代码
2021/03/30 HTML / CSS
利用Python实现模拟登录知乎
2022/05/25 Python