zoukankan      html  css  js  c++  java
  • 让DIV的滚动条自动滚动到最底部

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

    聊天程序是基于AJAX设计的,没有用框架,消息容器是一个DIV,所以问题就在于如何控制DIV的滚动条。

    但同样的代码拿到我这里却完全失效,又仔细查了下资料说XHTML标准下scrollTop的值恒为0,解决办法是使用 document.documentElement.scrollTop代替document.body.scrollTop,讲了半天所解决的是整个页 面的滚动条。这个方法我是用不了了,因为不是框架结构,所以不可能用body的滚动条控制浏览信息。

    网上关于这个问题的资料很少,连CSDN上也说没有办法。

    不死心,后来查DHTML手册得知DIV有个doScroll方法可以用来模拟滚动条点击,但很令人失望,到了我这里又是完全失效,难道又不被XHTML支持?

    最后终于被我找到控制DIV内容滚动的方法:

    <!DOCTYPE> 
    <html> 
    <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;  400px; border: 1px solid #999;">
                </div>
                <input type="button" value="插入一行" onclick="add();">
            </div>
        </div>
    </body>
    </html>

     

  • 相关阅读:
    【AtCoder Regular Contest 080E】Young Maids [堆][线段树]
    【AtCoder Grand Contest 007E】Shik and Travel [Dfs][二分答案]
    【Codeforces858F】Wizard's Tour [构造]
    【AtCoder Grand Contest 001F】Wide Swap [线段树][拓扑]
    【AtCoder Grand Contest 012C】Tautonym Puzzle [构造]
    【Foreign】动态规划 [分治][DP]
    【BZOJ2683】简单题 [分治][树状数组]
    【BZOJ4237】稻草人 [分治][单调栈]
    【BZOJ3745】Norma [分治]
    【BZOJ4552】【HEOI2016】排序 [二分答案][线段树]
  • 原文地址:https://www.cnblogs.com/theWayToAce/p/5596317.html
Copyright © 2011-2022 走看看