0

我有一个自动完成列表,在列表中我使用 iscroll 4 的滚动:http ://cubiq.org/iscroll-4 for Mobile。(Html5 + PhoneGap for Android)

在输入中写一个字母时(自动完成已打开)我调用了一个刷新滚动的函数,因为每次写一个字母列表的大小都会改变。

我的刷新功能:

function RefreshScroll() {
    MyScroll.scrollToElement('li:nth-child(1)', 100)// Jump to the first element
    setTimeout(function () {
        MyScroll.refresh();// Refresh scroll bar -function of iscroll 4
    }, 0);
}

我的卷轴:

document.addEventListener('DOMContentLoaded', LoadScroll, false);

var myScroll;

function LoadScroll() {
    document.addEventListener('touchmove', function (e) { e.preventDefault(); });
    myScroll= new iScroll('wrapper');
}

我有几个问题:

  1. 我第一次按下键盘字母时,列表会出现而不滚动,只有在单击第二个字母时才会出现滚动。

  2. 第二次出现滚动并且我向下滚动时,当到达列表的末尾而不是向后跳时,他随着列表的继续而下降。

谁能帮我?

4

1 回答 1

0

最后我以这种方式解决了这个问题:

因为自动完成需要时间来填充,所以我只在一段时间后刷新滚动。

我改变了功能:

function RefreshScroll() {
    setTimeout(function () {
        MyScroll.scrollToElement('li:nth-child(1)', 100)
        setTimeout(function () {
            MyScroll.refresh();
        }, 0);
    }, 200);
}

这解决了这两个问题,可能每次加载上一个列表滚动时

于 2013-01-02T13:00:16.900 回答