讓DIV的滾動(dòng)條自動(dòng)滾動(dòng)到最底部的3種方法(推薦)
要制作一個(gè)在線聊天的程序,在做最后的修飾時(shí),需要對(duì)獲得的信息即時(shí)滾動(dòng)以保證用戶總能看到最新消息。
聊天程序是基于AJAX設(shè)計(jì)的,沒有用框架,消息容器是一個(gè)DIV,所以問(wèn)題就在于如何控制DIV的滾動(dòng)條。
但同樣的代碼拿到我這里卻完全失效,又仔細(xì)查了下資料說(shuō)XHTML標(biāo)準(zhǔn)下scrollTop的值恒為0,解決辦法是使用 document.documentElement.scrollTop代替document.body.scrollTop,講了半天所解決的是整個(gè)頁(yè) 面的滾動(dòng)條。這個(gè)方法我是用不了了,因?yàn)椴皇强蚣芙Y(jié)構(gòu),所以不可能用body的滾動(dòng)條控制瀏覽信息。
網(wǎng)上關(guān)于這個(gè)問(wèn)題的資料很少,連CSDN上也說(shuō)沒有辦法。
不死心,后來(lái)查DHTML手冊(cè)得知DIV有個(gè)doScroll方法可以用來(lái)模擬滾動(dòng)條點(diǎn)擊,但很令人失望,到了我這里又是完全失效,難道又不被XHTML支持?
最后終于被我找到三種控制DIV內(nèi)容滾動(dòng)的方法:
方法一:
使用錨標(biāo)記要滾動(dòng)到的位置,然后通過(guò)click方法模擬點(diǎn)擊滾動(dòng)到錨所在位置
<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方法,將最底端滾動(dòng)到可視位置 [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="滾動(dòng)條, scrollbar, 頁(yè)面底部, 聊天窗口, " /> <meta name="description" content="有些時(shí)候(如開發(fā)聊天程序),我們需要將將滾動(dòng)條(scrollbar)保持在最底部,比如聊天窗口,最新發(fā)出和收到的信息要顯示在最 下方,如果要看到最下方的內(nèi)容,就必須保證滾動(dòng)條保持在最底部。" /> <title>將滾動(dòng)條(scrollbar)保持在最底部的方法 - 滾動(dòng)條, scrollbar, 頁(yè)面底部, 聊天窗口, </title> </head> <body> <div id="example"> <h3 id="example_title">將滾動(dòng)條(scrollbar)保持在最底部的方法</h3> <div id="example_main"> <!--************************************* 實(shí)例代碼開始 *************************************--> <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">請(qǐng)點(diǎn)擊“插入一行”按鈕,插入最新信息,當(dāng)出現(xiàn)滾動(dòng)條時(shí),滾動(dòng)條將自動(dòng)保持在底部。</span><br /> <div id="scrolldIV" style="overflow:auto; height: 100px; width: 400px; border: 1px solid #999;"> </div> <input type="button" value="插入一行" onclick="add();"> <!--************************************* 實(shí)例代碼結(jié)束 *************************************--> </div> </div> </body> </html>
以上就是小編為大家?guī)?lái)的讓DIV的滾動(dòng)條自動(dòng)滾動(dòng)到最底部的3種方法(推薦)的全部?jī)?nèi)容了,希望對(duì)大家有所幫助,多多支持腳本之家~
相關(guān)文章
JavaScript學(xué)習(xí)總結(jié)之正則的元字符和一些簡(jiǎn)單的應(yīng)用
這篇文章主要介紹了JavaScript學(xué)習(xí)總結(jié)之正則的元字符和一些簡(jiǎn)單的應(yīng)用,需要的朋友可以參考下2017-06-06JS實(shí)現(xiàn)網(wǎng)頁(yè)表格自動(dòng)變大縮小的方法
這篇文章主要介紹了JS實(shí)現(xiàn)網(wǎng)頁(yè)表格自動(dòng)變大縮小的方法,實(shí)例分析了javascript操作表格的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03純css+js寫的一個(gè)簡(jiǎn)單的tab標(biāo)簽頁(yè)帶樣式
最近經(jīng)常要用tab標(biāo)簽頁(yè),于是就寫了一個(gè)簡(jiǎn)單的tab標(biāo)簽頁(yè),純css+js寫的,帶樣式。大家可以參考下2014-01-01vue渲染大量數(shù)據(jù)時(shí)卡頓卡死解決方法
這篇文章主要介紹了vue渲染大量數(shù)據(jù)時(shí)發(fā)生卡頓卡死問(wèn)題時(shí)的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08JavaScript 字符串常用操作小結(jié)(非常實(shí)用)
這篇文章主要介紹了JavaScript 字符串常用操作的知識(shí),包括字符串截取,查找類的方法,對(duì)js字符串操作相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-11-11WebStorm中如何將自己的代碼上傳到github示例詳解
這篇文章主要介紹了WebStorm中如何將自己的代碼上傳到github,本文分步驟通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10原生JS實(shí)現(xiàn)左右箭頭選擇日期實(shí)例代碼
原生JS 左右箭頭選擇日期,就是用左右尖括號(hào)可改變中間日期的值,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2017-03-03