DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 讓DIV的滾動條自動滾動到最底部的3種方法(推薦)
讓DIV的滾動條自動滾動到最底部的3種方法(推薦)
編輯:關於JavaScript     

要制作一個在線聊天的程序,在做最後的修飾時,需要對獲得的信息即時滾動以保證用戶總能看到最新消息。

聊天程序是基於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種方法(推薦)的全部內容了,希望對大家有所幫助,多多支持~

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved