我在Prototypejs的冲突模式下使用slimScroll。 My script使用Prototype js定期将文本加载到已激活slimscroll的div中。我需要的是SlimScroll在prototypejs定期更新后立即滚动。
这就是我为实现这一目标而做的事情
function mettreajour_periodique_chat(span_id, url_traitement, nos_parametres, our_frequency, our_decay, our_decay_to_reset)
{
var ajax = new Ajax.PeriodicalUpdater ({success: span_id}, url_traitement, {method:'post', frequency: our_frequency, decay: our_decay, parameters: nos_parametres, evalScripts: true, insertion: 'bottom', onSuccess: function(r)
{ //or onComplete
if (ajax.decay >= our_decay_to_reset)
{
//ajax.frequency = our_frequency;
ajax.decay = our_decay;
}
////////////////
}
});
}
///////////////////////////////////////////////////////////////////////////
//The periodical update happens here
mettreajour_periodique_chat('wordbox', 'brouillons_travail.php', '&from_id=6&to_id=7', '3', '2', '6000');
jQuery( document ).ready(function( $ ) {
// Code that uses jQuery's $ can follow here.
///////////////////////////////////////////////////////////////////////////////
$('.slimscroll').slimscroll({ start: 'bottom', scrollBy: '590px' });
///////////////////////////////////////////////////////////////////////////////
});
定期更新工作正常,但slimScroll不会滚动到底部,也不会从底部开始。我甚至删除了start: 'bottom',
如何使用SlimScroll定期滚动到底部?
答案 0 :(得分:1)
这里的问题是您在定期更新脚本之外调用滚动,因此它不能很好地评估它。最好的办法是: 1 - 成功时调用更新程序内的滚动 2 - 计算div的新高度并滚动到它的结尾
因此,您的新代码应如下所示
function mettreajour_periodique_chat(span_id, url_traitement, nos_parametres, our_frequency, our_decay, our_decay_to_reset)
{
var ajax = new Ajax.PeriodicalUpdater ({success: span_id}, url_traitement, {method:'post', frequency: our_frequency, decay: our_decay, parameters: nos_parametres, evalScripts: true, insertion: 'bottom', onSuccess: function(r)
{
//So here on succes you will calculate the height of the div and
//scroll to that height
var bottomCoord = jQuery('.slimscroll')[0].scrollHeight;
jQuery('.slimscroll').slimScroll({scrollTo: bottomCoord});
if (ajax.decay >= our_decay_to_reset)
{
ajax.decay = our_decay;
}
}
});
}
这样,无论何时div增长,都会计算新的高度并滚动到它。但它有一个问题。问题是你以后无法滚动到顶部,因为这将内容滚动到底部,但你可以在方便时设置条件