jQuery - Textarea - 在使用时不要向上滚动

时间:2012-12-16 20:42:00

标签: jquery html

我有一个jQuery脚本,可以向下滚动到文本区域框的末尾。此函数位于基于区间的自动div重新加载器(下面的脚本)中。我想这样做,当有人在文本区域滚动时,脚本向下滚动的部分将被停用。

var refreshId = setInterval(function()
{
    $('#chatArea').load('run/chatBox.php', function() {     
            $('#chatAreaBox').scrollTop($('#chatAreaBox')[0].scrollHeight);
    });
}, 2500);

1 个答案:

答案 0 :(得分:1)

只需检查scrollTop值即可知道用户在执行动画之前是否已向下滚动

var refreshId = setInterval(function()
{
    $('#chatArea').load('run/chatBox.php', function() {    
            if($('#chatAreaBox').scrollTop === 0)
                $('#chatAreaBox').scrollTop($('#chatAreaBox')[0].scrollHeight);
    });
}, 2500);

您还可以在date()事件中存储时间戳(使用scroll())并在间隔函数中检查它,如果上次滚动事件发生的时间超过5秒,则执行动画

var timestamp = null;

    $('#chatArea').scroll(function() {    
        var d = new Date();
        timestamp = d.getTime();    
    });


var refreshId = setInterval(function()
{
    $('#chatArea').load('run/chatBox.php', function() { 

        var d = new Date();

            if((d.getTime() - timestamp) > 5000)
                $('#chatAreaBox').scrollTop($('#chatAreaBox')[0].scrollHeight);
    });
}, 2500);