15

iPhone でこのフィドル-webkit-overflow-scrolling:touchに移動すると、宣言があっても「タップしてトップ」機能が引き続き機能することがわかります。これは、iOS 6.1 を実行する iPhone 4 および iOS 5.0.1 を実行する iPhone 4S でテストされました。

このテストでは、次のような疑問が生じます。宣言は、iOS の「ステータス バーをタップして一番上にスクロールする-webkit-overflow-scrolling:touch」動作に影響しますか?

4

5 に答える 5

9

私の経験から、それは確かにそれに影響を与えます。少なくとも iOS 6.1 では、両方の機能を同時に動作させる方法がわかりません。

これを裏付けるjQuery Mobile ドキュメントからの引用もあります。

-webkit-overflow-scrolling:touch プロパティは、ステータス バーで時間がタップされたときにページの上部にスクロールするイベントを無効にしているようです。これは非常に便利な機能であるため、Apple がこれを修正することを願っています。

私もこの機能を使いたいと思っているので、Apple がこのように設定しているのは本当に残念ですが、私にとっては一番上にスクロールする機能の方が重要です。

于 2013-02-14T17:21:19.243 に答える
2

要素に適用-webkit-overflow-scrolling: touch;したため、フィドルは「ステータスバーをタップして上にスクロールする」動作を中断しません。bodyビヘイビア内部の要素に適用すると、動作がbody中断します。

于 2013-02-23T00:09:05.960 に答える
0

これを回避する方法があります – <a href="http://www.artspot.eu/blog/2010/12/29/extending-iscroll-scroll-to-the-top-by-tapping-the-status-bar /" rel="nofollow">http://www.artspot.eu/blog/2010/12/29/extending-iscroll-scroll-to-the-top-by-tapping-the-status-bar/

iScroll の作成者である Matteo Spinelli は、これを達成するのは実際にはまったく難しくないことをツイートで明らかにしています。ステータス バーをタップすると、ウィンドウ オブジェクトのスクロール イベントがトリガーされます。イベント リスナーを使用すると、scrollTo 関数を簡単に呼び出してリストの一番上にスクロールできます。

window.addEventListener('scroll', function(){
  yourscrollobject.scrollTo(0,0,duration);
}, false);
于 2013-08-15T21:25:40.090 に答える
0

ここでのほとんどの回答が指摘しているように、-webkit-overflow-scrolling: touchdocument.body 以外の要素を配置すると問題が発生します。固定ヘッダーを使用していて、依存関係を追加したくない場合は、JQuery を使用しているすべての人にとって、これでうまくいくはずです。

$('.fixed-header').on('click',function(e){
    var $scrollingElement = $('.scrolling-element');

    $scrollingElement.css('overflow','hidden');
    $scrollingElement.animate({ scrollTop: 0 }, "fast", function() {
        $scrollingElement.css('overflow','auto');
    });
});

overflowプロパティを切り替える目的は、モーメンタム スクロールを使用するデバイス用です。これにより、勢いがすぐに停止し、スクロール アニメーションが実行されます。スクロール要素を変数にしたのは、不必要に DOM を何度も照会しないようにするためです。これが誰かの助けになることを願っています。それについて手を差し伸べたい場合は、@patrick にリンクされている github プロジェクトが別の優れたソリューションのように見えます。

于 2015-04-28T16:19:59.250 に答える