2013-07-11 4 views
6

ほとんど完了しているphonegapアプリでは、スクロール中にDOMに要素を動的に挿入します。このために、私は 'touchmove'と 'scroll'コールバックを使用します。私が現在直面している問題は、スクロールが終了した後にのみdomが更新されるということです。いくつかの調査をした後、私は今、原因は、スクロールが完了した後に、phonegapがdomを更新しないということだと思う。phonegapアプリでスクロールしながらdomを更新

あなた自身がこの問題に直面していて、解決策を見つけましたか?

更新

は私のテストの結果では、JavaScriptがすべてでスクロールしながら更新されないということでした。私はなぜこれが、そして良い方法はjavascriptを実行し、スクロール中にDOMを更新することでしょう知っていると思います。ビューポートがそれらの近くにあるときに要素を更新する別の方法を考えることができれば、それも良いでしょう。ユーザーがスクロールを停止したときにすべてが更新されますが、ユーザーがいない場合は、「空の」ページスペースに適合します。

スクロール検出コードの依頼

これは、私は現在、スクロールを検出するのに使用するものです。

document.addEventListener("touchmove", callback, false); // This works on android, but on iOS the callback is called when scrolling stops. Usually multiple times, because they stack while scrolling and not being executed. I see the event being executed during touchmove, but when the viewport begins moving, the callbacks pause until after the scrolling ends. 
document.addEventListener("scroll", callback, false); // This is only executed once, and only when scrolling has fully stopped; the viewport is not moving anymore. On android this is executed all the time during scrolling, which is good. 

タッチ移動中のみの更新とスクロールが停止した別の時間の組み合わせで十分です。ユーザーが非常にスクロールして(タッチ移動後に)空きスペースを満たしている可能性は非常に小さいです。問題は、スクロール中にtouchmoveイベントコールバックが実行されないことです。

+0

今私はこれが事実だと確信しています。私のconsole.logsは、スクロールが停止した後にのみ表示されます。 –

+0

あなたはスクロールを検出するために何を使用していますか?私たちにあなたのコードを教えてもらえますか? – caiocpricci2

+0

同じ問題でここに座って、何とか解決しましたか? – mattias

答えて

2

iScrollをご覧になることをお勧めします。これは、ユーザーのスクロールを大いに制御できます。

ユーザが特定のポイントまでスクロールした後に登録してから、DOMエレメントをさらに読み込んでからスクロールし直して、更新された要素でユーザーエクスペリエンスを継続することができます。

+0

ありがとう、私はこれを試してみます。 –

+0

これは唯一の回答であり、解決策かもしれないので、私はまだ試していませんでしたが、担当者に相談してください。 –

関連する問題