私のチームと私は、スクロールしない固定ヘッダーを持つWebアプリケーションを開発しています。iOS Safari Overscrolling:プルダウンとバウンス
iOSのオーバースキャンを処理するには、負方向のスクロールを検出し、固定ヘッダを静的な位置に再配置してページの残りの部分とともにスクロールさせる必要があります。
我々はwindow
にjQueryのスクロールハンドラを結合することによって、この操作を行います。これがうまく機能
$(window).scroll(function() {
if ($(window).scrollTop() < 0) {
// position static header postioning in order
// let the header behave correctly when overscrolling
}
});
ページを手動で引っ張られたときに、(ドラッグ)ダウン。 しかし、すべてのiOSユーザーが知っているように、速度を上げて下向きの位置からページをスクロールすると、ページが一番上に到達すると、ページがはね返ります(overscrolls)。
この場合、スクロール処理は機能しません。私は2つの理由を想像することができます現時点では
は、なぜこの異なる現象が発生:
- 急速に上向きにスクロールして、ページのバウンスを行うことを、流体ハンドリング
- を確保するためにSafariのJSエンジンの速すぎます手動でウェブページをプルダウンするのと同じように技術的に上にスクロールするとバウンスしますか?
$(window).scrollTop()
に関しては?
私のスクロール処理をどのようにして両方のケースで行うかについてのヒントはありますか?
ありがとうございました!この描画ループは永続的に実行されているため、ページがスクロールしていなくても、パフォーマンスの問題が発生する可能性はありますか? – Windwalker
あなたの答えをありがとう!純粋なCSSで行うよりもかなりうまく動作します。光学的な変更をトリガーするCSSクラスの設定だけでは、すばやくスクロールしても十分速く動作しないようです。それでも私はパフォーマンスの面でいくつかのヒントを感謝しています... – Windwalker
@Windwalkerユーザーがスクロールしたときの検出のような、より多くのコードが必要な場合があります。 – hellol11