0

我已经完成了这段代码,但我坚持我要做的最后一件事,当添加一个项目时,它会自动滚动到底部,这很好,但我不知道该怎么做,我确定它很简单,当我使用滚动条我想阻止它跳到底部,直到我停止使用滚动条。

您将在我提供的示例中看到,如果您单击滚动条并向上拖动它会在添加新项目时一直向下跳,如果有意义的话,我只需要暂停它直到我停止使用滚动条。

它使用 api.scrollToBottom(); 一旦添加了正确的新项目,滚动到底部,但不确定鼠标悬停的条件等......当这些条件停止时。

希望有人可以帮助我,非常感谢提前!:)

JSFiddle在这里:http: //jsfiddle.net/GT7sV/2/

JS

var settings = {
        showArrows: true,
        verticalArrowPositions: 'os',
        horizontalArrowPositions: 'os',
        animateScroll: true
    };
    var pane = jQuery('.scroll-pane');
    pane.jScrollPane(settings);
    var api = pane.data('jsp');
    var i = 1;

    api.scrollToBottom();

    setInterval(
        function()
        {
            api.getContentPane().append("<li>testing this new item</li>").children(':last').hide().fadeIn(1000);
            api.reinitialise();
            api.scrollToBottom();
        },
        1000
    );

});

谢谢!

4

1 回答 1

0

我不知道这是否适合您,但您可以尝试不同的方向。当用户滚动到底部时,您可以加载新行:

conversationHeadersScrollPane = $('.scroll-pane').bind(
        'jsp-scroll-y',
        function(event, scrollPositionY, isAtTop, isAtBottom) {
            if (isAtBottom) {
                //add new rows for example with ajax call
            }
});

编辑:有一个函数 getPercentScrolledY() 所以你可以在调用 scrollToBottom 之前检查用户是否低于 90%,如果不让他在他自己滚动到底部时阅读。

于 2013-12-25T19:29:16.870 回答