让DIV的滚动条自动滚动到最底部的3种方法(推荐)

 更新时间:2016年09月24日 22:55:00   投稿:jingxian  
下面小编就为大家带来一篇让DIV的滚动条自动滚动到最底部的3种方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

要制作一个在线聊天的程序,在做最后的修饰时,需要对获得的信息即时滚动以保证用户总能看到最新消息。

聊天程序是基于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">&nbsp</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如何提取PDF中的图片和文字

    JavaScript如何提取PDF中的图片和文字

    这篇文章主要为大家详细介绍了JavaScript如何实现提取PDF中的图片和文字,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-11-11
  • js 实现碰撞检测的示例

    js 实现碰撞检测的示例

    这篇文章主要介绍了js 实现碰撞检测的示例,帮助大家更好的制作js特效,美化自身网页,感兴趣的朋友可以了解下
    2020-10-10
  • JavaScript实现三级级联特效

    JavaScript实现三级级联特效

    这篇文章主要介绍了JavaScript实现三级级联特效,选择省会出现相应的县下拉框,同时市的下拉框改变,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 微信公众平台开发教程(四) 实例入门:机器人回复(附源码)

    微信公众平台开发教程(四) 实例入门:机器人回复(附源码)

    本篇文章主要介绍了微信公众平台开发机器人,可以实现简单对话和查询天气等,有需要的可以了解一下。
    2016-12-12
  • JavaScript 数组详解

    JavaScript 数组详解

    学习js就不得不学他的数组,这篇文章是由色拉油整理下,需要学习js数组的朋友可以参考下
    2013-10-10
  • uniapp使用u-upload组件来实现图片上传功能

    uniapp使用u-upload组件来实现图片上传功能

    最近在用uniapp开发微信小程序,下面这篇文章主要给大家介绍了关于uniapp使用u-upload组件来实现图片上传功能的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • JS与CSS3实现图片响应鼠标移动放大效果示例

    JS与CSS3实现图片响应鼠标移动放大效果示例

    这篇文章主要介绍了JS与CSS3实现图片响应鼠标移动放大效果,结合实例形式分析了javascript与css3响应鼠标事件动态修改页面元素属性实现图片放大效果相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • node.js使用nodemailer发送邮件实例

    node.js使用nodemailer发送邮件实例

    这篇文章主要介绍了node.js使用nodemailer发送邮件的方法,例子中使用的是QQ邮箱,你也可以修改成其它的邮箱如163、gmail等,需要的朋友可以参考下
    2014-03-03
  • JS触摸事件、手势事件详解

    JS触摸事件、手势事件详解

    本篇文章主要介绍了JS触摸事件、手势事件详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 微信小程序新手入门之自定义组件的使用

    微信小程序新手入门之自定义组件的使用

    最近在用自定义组件搭建小程序,简单记录下步骤,所以这篇文章主要给大家介绍了关于微信小程序新手入门之自定义组件使用的相关资料,需要的朋友可以参考下
    2021-05-05

最新评论