我有一个jQuery脚本,可以向下滚动到文本区域框的末尾。此函数位于基于区间的自动div重新加载器(下面的脚本)中。我想这样做,当有人在文本区域滚动时,脚本向下滚动的部分将被停用。
var refreshId = setInterval(function()
{
$('#chatArea').load('run/chatBox.php', function() {
$('#chatAreaBox').scrollTop($('#chatAreaBox')[0].scrollHeight);
});
}, 2500);
答案 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);