4

我只是在使用基本级别的 javascripts。今天,当新数据添加到 DIV 时,我发现了以下内容并向下滚动 DIV 层。我不明白如何调用函数。是要使用window.onload函数吗?或任何其他。我应该在哪里声明 DIV 名称?

代码如下。

var chatscroll = new Object();
chatscroll.Pane = 
    function(scrollContainerId)
    {
        this.bottomThreshold = 25;
        this.scrollContainerId = scrollContainerId;
    }

chatscroll.Pane.prototype.activeScroll = 
    function()
    {
        var scrollDiv = document.getElementById(this.scrollContainerId);
        var currentHeight = 0;

        if (scrollDiv.scrollHeight > 0)
            currentHeight = scrollDiv.scrollHeight;
        else 
            if (objDiv.offsetHeight > 0)
                currentHeight = scrollDiv.offsetHeight;

        if (currentHeight - scrollDiv.scrollTop - ((scrollDiv.style.pixelHeight) ? scrollDiv.style.pixelHeight : scrollDiv.offsetHeight) < this.bottomThreshold)
            scrollDiv.scrollTop = currentHeight;

        scrollDiv = null;
    }

更新1:

<script type="text/javascript">
    var chatscroll = new Object();
    var chatScrollPane = new chatscroll.Pane('div1');
    chatScrollPane.activeScroll()
    chatscroll.Pane = function (scrollContainerId) {
    this.bottomThreshold = 25;
    this.scrollContainerId = scrollContainerId;
}
    chatscroll.Pane.prototype.activeScroll = function () {
    var scrollDiv = document.getElementById(this.scrollContainerId);
    var currentHeight = 0;

    if (scrollDiv.scrollHeight > 0)
        currentHeight = scrollDiv.scrollHeight;
    else
        if (objDiv.offsetHeight > 0)
            currentHeight = scrollDiv.offsetHeight;

    if (currentHeight - scrollDiv.scrollTop - ((scrollDiv.style.pixelHeight) ? scrollDiv.style.pixelHeight : scrollDiv.offsetHeight) < this.bottomThreshold)
        scrollDiv.scrollTop = currentHeight;
    scrollDiv = null;
}
</script>
4

1 回答 1

5

chatscroll.Pane旨在用作构造函数。您将构建一个这样的实例:

new chatscroll.Pane('somescrollContainerId');

如果将返回的值分配给变量,则返回的值将变得可重用。

var chatScrollPane = new chatscroll.Pane('somescrollContainerId');

您传入的scrollContainerId将是HTML 文档中要使用此对象id的元素的 ID(属性) 。DIV

您不需要在您的 中声明它window.onload,但这肯定不会受到伤害。构造函数所做的只是创建一个新对象,为该新对象设置this值,在其中创建和设置bottomThreshold属性scrollContainerId,然后在构造函数完成时返回这个新对象。

只需确保activeScroll在文档完全解析之前永远不会调用该函数,因为它实际上会进入您的文档以检索和操作元素。

于 2011-12-12T17:13:53.313 回答