Как мне вызвать эту функцию с помощью JavaScript? - PullRequest
4 голосов
/ 12 декабря 2011

Я просто работаю с базовым уровнем JavaScript.Сегодня я нашел ниже и для прокрутки вниз слой 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>

1 Ответ

5 голосов
/ 12 декабря 2011

chatscroll.Pane предназначен для использования в качестве конструктора.Вы бы сконструировали экземпляр следующим образом:

new chatscroll.Pane('somescrollContainerId');

Возвращаемое значение становится пригодным для повторного использования, если вы присвоите его переменной.

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

Передаваемое scrollContainerId будет идентификатором(id атрибут) элемента DIV в вашем HTML-документе, с которым вы хотите использовать этот объект.

Вам не нужно объявлять его в вашем window.onload, но это, безусловно, победило 'больноВсе, что делает конструктор, - это создание нового объекта, установка значения this для этого нового объекта, создание и установка в нем свойств bottomThreshold и scrollContainerId, а затем возвращение этого нового объекта по завершении конструктора.

Просто убедитесь, что вы никогда не вызываете функцию activeScroll до тех пор, пока документ не будет полностью проанализирован, поскольку он фактически входит в ваш документ для извлечения элементов и управления ими.

...