让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 相关文章推荐
doctype后如何获得body.clientHeight的方法
Jul 11 Javascript
JS.elementGetStyle(element, style)应用示例
Sep 24 Javascript
开启Javascript中apply、call、bind的用法之旅模式
Oct 28 Javascript
基于JavaScript实现带缩略图的轮播效果
Jan 12 Javascript
Vue 仿百度搜索功能实现代码
Feb 16 Javascript
vue.js利用defineProperty实现数据的双向绑定
Apr 28 Javascript
使用MUI框架模拟手机端的下拉刷新和上拉加载功能
Sep 04 Javascript
浅谈vue中.vue文件解析流程
Apr 24 Javascript
在vue项目中集成graphql(vue-ApolloClient)
Sep 08 Javascript
vue实现类似淘宝商品评价页面星级评价及上传多张图片功能
Oct 29 Javascript
koa2使用ejs和nunjucks作为模板引擎的使用
Nov 27 Javascript
bootstrap-table后端分页功能完整实例
Jun 01 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
十大催泪虐心动漫,你能坚持看到第几部?
2020/03/04 日漫
PHP下MAIL的另一解决方案
2006/10/09 PHP
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
PHP XML error parsing SOAP payload on line 1
2010/06/17 PHP
浅析PHP中strlen和mb_strlen的区别
2014/08/31 PHP
通过php删除xml文档内容的方法
2015/01/23 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
2018/08/04 PHP
laravel框架如何设置公共头和公共尾
2019/10/22 PHP
网页和浏览器兼容性问题汇总(draft1)
2009/06/01 Javascript
jquery下jstree简单应用 - v1.0
2011/04/14 Javascript
javascript 随机展示头像实现代码
2011/12/06 Javascript
AJAX跨域请求json数据的实现方法
2013/11/11 Javascript
jQuery表格排序组件-tablesorter使用示例
2014/05/26 Javascript
form.submit()不能提交表单的错误原因及解决方法
2014/10/13 Javascript
jQuery自定义滚动条完整实例
2016/01/08 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
JS传参及动态修改页面布局
2017/04/13 Javascript
angular实现IM聊天图片发送实例
2017/05/08 Javascript
Vue框架中正确引入JS库的方法介绍
2017/07/30 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
2017/09/20 Javascript
安装Node.js并启动本地服务的操作教程
2018/05/12 Javascript
Python类的基础入门知识
2008/11/24 Python
Python中文件遍历的两种方法
2014/06/16 Python
在Docker上开始部署Python应用的教程
2015/04/17 Python
Python中列表list以及list与数组array的相互转换实现方法
2017/09/22 Python
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
Python数据分析库pandas基本操作方法
2018/04/08 Python
对python中的for循环和range内置函数详解
2018/04/17 Python
python 显示数组全部元素的方法
2018/04/19 Python
十八届三中全会个人学习材料
2014/02/13 职场文书
2014年协会工作总结
2014/11/22 职场文书
优秀党员个人总结
2015/02/14 职场文书
庆祝教师节活动总结
2015/03/23 职场文书
六年级上册《闻官军收河南河北》的教学设计
2019/11/15 职场文书
python单向链表实例详解
2022/05/25 Python