让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 相关文章推荐
读jQuery之十三 添加事件和删除事件的核心方法
Aug 23 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
Mar 11 Javascript
动态创建script标签实现跨域资源访问的方法介绍
Feb 28 Javascript
JavaScript中的类(Class)详细介绍
Dec 30 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
Jul 07 Javascript
jQuery实现简单的tab标签页效果
Sep 12 Javascript
使用async、enterproxy控制并发数量的方法详解
Jan 02 Javascript
原生js实现随机点名功能
Nov 05 Javascript
Angular value与ngValue区别详解
Nov 27 Javascript
JS apply用法总结和使用场景实例分析
Mar 14 Javascript
vue element和nuxt的使用技巧分享
Jan 14 Vue.js
VUE递归树形实现多级列表
Jul 15 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 开源AJAX框架14种
2009/08/24 PHP
php生成短网址示例
2014/05/05 PHP
php生成酷炫的四个字符验证码
2016/04/22 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
Javascript 表单之间的数据传递代码
2008/12/04 Javascript
jQuery 定时局部刷新(setInterval)
2010/11/19 Javascript
精通Javascript系列之Javascript基础篇
2011/06/07 Javascript
jQuery .tmpl(), .template()学习资料小结
2011/07/18 Javascript
jquery自定义属性(类型/属性值)
2013/05/21 Javascript
jQuery Animation实现CSS3动画示例介绍
2013/08/14 Javascript
cookie的secure属性详解
2015/04/08 Javascript
轻松搞定jQuery.noConflict()
2016/02/15 Javascript
详解JavaScript for循环中发送AJAX请求问题
2020/06/23 Javascript
javascript原型继承工作原理和实例详解
2016/04/07 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
2016/10/31 Javascript
nodejs的HTML分析利器node-jquery用法浅析
2016/11/08 NodeJs
JS基于面向对象实现的选项卡效果示例
2016/12/20 Javascript
js实现鼠标跟随运动效果
2020/08/02 Javascript
js中let和var定义变量的区别
2018/02/08 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
不刷新网页就能链接新的js文件方法总结
2020/03/01 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
2020/04/04 jQuery
vue实现短信验证码输入框
2020/04/17 Javascript
vue-cli4.x创建企业级项目的方法步骤
2020/06/18 Javascript
Python之ReportLab绘制条形码和二维码的实例
2018/01/15 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
Python列表的切片实例讲解
2019/08/20 Python
python给list排序的简单方法
2020/12/10 Python
英国最红的高街时尚品牌:Topshop
2016/08/05 全球购物
New Balance波兰官方商城:始于1906年,百年慢跑品牌
2017/08/15 全球购物
Super-Pharm波兰:药房和香水在一个地方
2020/08/18 全球购物
与UNIX有关的几个名词
2015/09/17 面试题
《孔繁森》教学反思
2014/04/17 职场文书
大学生自荐材料范文
2014/12/30 职场文书
2015年党支部书记工作总结
2015/05/21 职场文书
导游词之沈阳清昭陵
2019/12/28 职场文书