我正在处理基本级别的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>
答案 0 :(得分:5)
chatscroll.Pane
旨在用作构造函数。您将构建一个这样的实例:
new chatscroll.Pane('somescrollContainerId');
如果将返回值分配给变量,则返回值将变为可重用。
var chatScrollPane = new chatscroll.Pane('somescrollContainerId');
您传入的scrollContainerId
将是HTML文档中要与此对象一起使用的id
元素的ID(DIV
属性)。
您不应该在window.onload
中声明它,但这肯定不会受到伤害。所有构造函数都在创建一个新对象,将this
值设置为该新对象,在其中创建和设置bottomThreshold
和scrollContainerId
属性,然后在构造函数时返回此新对象完了。
确保在文档完全解析之后才调用activeScroll
函数,因为它实际上会进入文档以检索和操作元素。