div でiOS ネイティブ スクロールを使用する phonegap アプリケーションがあります-webkit-overflow-scrolling
。ユーザーがボタンをクリックしたときに進行中のスクロールを手動で停止できるようにしたい (ページの上部にスクロールして戻る)。これは実行可能ですか?
1855 次
3 に答える
2
残念ながら、現時点ではこれは不可能です。scroll
イベントは、スクロールが終了したときにのみトリガーされます。勢いがコンテンツを動かし続ける限り、イベントはまったく発生しません。これは、図6-1Appleの「SafariWebコンテンツガイド」のパンジェスチャで確認できます。
また、この動作を示すためにフィドルを作成しました。scrollTop
値は、 iOSのアニメーション化が完了した後に設定されます。
于 2013-02-08T11:54:11.777 に答える
0
「クリック」の代わりに「タッチスタート」を使用してタッチ イベントをキャプチャできます。これは、クリック イベントがモーメンタム スクロールが完了するまで発生しないように見える場合があるためです。このjQueryソリューションを試してください:
$('#yourTrigger').on('touchstart', function () {
var $div = $('.yourScrollableDiv');
if ($div.scrollTop() === 0) {
return false; //if no scroll needed, do nothing.
}
$div.addClass('scrolling'); //apply the overflow:hidden style with a class
$div.animate({
scrollTop: 0
}, 600, function () {
$div.removeClass('scrolling'); //scrolling has finished, remove overflow:hidden
});
}
@Patrick-Rudolphが言ったように、「スクロール」クラスには単にCSSプロパティoverflow:hiddenがあり、進行中の勢いのあるスクロールを停止します。
.scrolling {
overflow: hidden;
}
注: タイマー関数を設定するよりも、コールバック関数を使用してスクロール アニメーションの終了を通知することをお勧めします。
于 2015-09-24T20:54:39.550 に答える