如何使用SlimScroll定期滚动到底部

时间:2017-10-10 21:45:30

标签: jquery prototype slimscroll

我在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定期滚动到底部?

1 个答案:

答案 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增长,都会计算新的高度并滚动到它。但它有一个问题。问题是你以后无法滚动到顶部,因为这将内容滚动到底部,但你可以在方便时设置条件