让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 相关文章推荐
一个多次搜索+多次传值的解决方案
Jan 20 Javascript
JavaScript 基础篇之运算符、语句(二)
Apr 07 Javascript
用循环或if语句从json中取数据示例
Aug 18 Javascript
jQuery+css3动画属性制作猎豹浏览器宽屏banner焦点图
Mar 16 Javascript
使用AngularJS 应用访问 Android 手机的图片库
Mar 24 Javascript
javascript中关于&amp;&amp; 和 || 表达式的小技巧分享
Apr 10 Javascript
javascript回到顶部特效
Jul 30 Javascript
bootstrap datepicker限定可选时间范围实现方法
Sep 28 Javascript
基于JS实现仿百度百家主页的轮播图效果
Mar 06 Javascript
VUE前端cookie简单操作
Oct 17 Javascript
vue better-scroll插件使用详解
Jan 25 Javascript
VSCode搭建React Native环境
May 07 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与MySQL交互使用详解
2006/10/09 PHP
php MYSQL 数据备份类
2009/06/19 PHP
php 数组动态添加实现代码(最土团购系统的价格排序)
2011/12/30 PHP
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
2012/08/08 PHP
PHP通过插入mysql数据来实现多机互锁实例
2014/11/05 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
2019/07/03 PHP
PHP封装请求类实例分析【基于Yii框架】
2019/10/17 PHP
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
如何通过javascript操作web控件的自定义属性
2013/11/25 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
js实现对table动态添加、删除和更新的方法
2015/02/10 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
CSS3实现动态背景登录框的代码
2015/07/28 Javascript
Java Mybatis框架入门基础教程
2015/09/21 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
2016/07/12 Javascript
JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
2016/07/27 Javascript
微信小程序 video组件详解
2016/10/25 Javascript
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
2017/09/21 Javascript
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
Python Trie树实现字典排序
2014/03/28 Python
使用Python的Supervisor进行进程监控以及自动启动
2014/05/29 Python
Python自定义线程类简单示例
2018/03/23 Python
PyQt5实现简单数据标注工具
2019/03/18 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
2019/07/24 Python
python爬虫 爬取超清壁纸代码实例
2019/08/16 Python
CSS3打造磨砂玻璃背景效果
2016/09/28 HTML / CSS
美国在线宠物商店:Chewy
2019/01/12 全球购物
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
应届大学生的推荐信
2013/11/20 职场文书
北京离婚协议书范文2014
2014/09/29 职场文书
高中生旷课检讨书
2014/10/08 职场文书
2014年学生会工作总结范文
2014/11/07 职场文书
湘江北去观后感
2015/06/15 职场文书
关于应聘教师的自荐信
2016/01/28 职场文书