0

iscroll 4 のスクロールを使用するリストで、オートコンプリート リストがあります: http://cubiq.org/iscroll-4 for Mobile.(Html5 + PhoneGap for Android)

入力で文字を書くとき (AutoComplete がオン)、スクロールを更新する関数を呼び出しました。文字を書くたびにリストのサイズが変わるためです。

私のリフレッシュ機能:

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番目の文字スクロールをクリックすると表示されます。

  2. 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 に答える