jScrollPane在内容更新后不滚动到底部
问题描述:
我有一个jScrollPane聊天窗口。问题是,当我提交一条消息时,它不会向下滚动到我写的最后一个单词/行,它始终是一条线。jScrollPane在内容更新后不滚动到底部
$('body').delegate('#private-form', 'submit', function() {
var sendMessage = $(this).find('input.private-message').val();
if (!empty(sendMessage)) {
socket.emit('send private message', {
'message': sendMessage,
'username': $(this).find('input.send-to').val()
});
$(this).find('input.private-message').val('');
var data = '' +
'<div class="person">' +
'<img src="img/avatar.png" alt="">' +
'<div class="details">' +
'<div class="chat">' +
'<p>' + sendMessage + '</p>' +
'</div>' +
'<div class="chat-view">' +
'<p>10 min ago</p>' +
'</div>' +
'</div>' +
'</div>';
var settings = {
showArrows: false,
autoReinitialise: true,
};
var pane = $('.chat-single');
pane.jScrollPane(settings);
var contentPane = pane.data('jsp').getContentPane();
contentPane.append(
data
);
pane.data('jsp').scrollToBottom();
}
return false;
});
标记:
<div class="chatters">
<div class="chat-single">
</div>
</div>
样式:
.chatters {
padding: 10px 0;
height: 75%;
width: auto;
max-width: 390px;
}
.chat-single{
height:100%
}
答
追加data
后,滚动到页面底部之前调用reinitialise
上pane.data('jsp')
。
contentPane.append(
data
);
pane.data('jsp').reinitialise();
pane.data('jsp').scrollToBottom();
另外,如果你使用autoReinitialise
请务必在默认情况下,每sencond(每500ms)执行此重新初始化两次,因为提供合理autoReinitialiseDelay
。
太棒了!你这个人,你建议什么时候用autoReinitialiseDelay? – Uffo 2014-12-07 15:45:20
@Uffo在一般情况下,你不应该需要'autoReinitialise',它完全是延迟。如果没有该属性,请检查该页面是否正常工作,如果发现不需要,请将其除去。否则,如果它破坏了网站的功能,我会建议大约2-5千(毫秒)的延迟值。如果您认为我帮助解决了您的问题,请考虑奖励奖励,因为如果在7天结束时自动颁发奖励,则只奖励一半奖励。 – SeinopSys 2014-12-07 15:47:52
谢谢,是的,我会在23小时内奖励赏金,我不会忘记,谢谢! – Uffo 2014-12-07 16:03:38