Safari IOSメニューバーが画面の下部10%のボタンと競合する


14

私は、複数のプラットフォームで機能し、かなり機能するWebポータルを構築しています。プラットフォームの1つはIOS Safariで、これは問題が発生した場合です。私のコードでは、幅と高さが100%のdivの下部に2つのフローティングボタンを配置しています。ただし、ボタンをクリックすると、モバイルサファリからのコンパクトビューがフルビューに切り替わり、ボタンが下部のナビゲーションバーの後ろに隠れます。

ユーザーが画面の下部10%をタップしたときにSafariモバイルが拡張メニューを表示するのは正常な動作ですか?どうすればこれを回避できますか?

このgifでは、IOSシミュレーターで 例
問題を確認できます。問題が発生するのは、ボタンがビューの下位10%にある場合のみです。これは通常のボタンにすぎません。私のコードは複数の開発者によってトリプルチェックされ、エラーはありません。


コードスニペットを一覧表示したら、フラグを立ててスタックオーバーフローに移行できます...
bmike

Safariのバグを作成しました。そこにコメントしてください:bugs.webkit.org/show_bug.cgi
id=

回答:


5

これはMobile Safariの通常の動作です。下部をタップすると、さまざまなブラウザーオプションが表示され、それに応じてWebページが上にスクロールします。ただし、Webページの機能は同じなので、ユーザーはスクロールした後もボタンをタップして、ボタンの機能にアクセスできます。


4
Patrixに感謝します。これは正常なことですが、html、css、jsを使用してこの動作をオーバーライドする方法はありますか?私はすでにスタックオーバーフローでこの質問を投稿しましたが、それはアップルに関連するものであるため、おそらく異なる質問があるでしょう
dennismuijs

1
StackOverflow(またはWeb開発者がたむろするSEサイト)は、AD(エンドユーザーの問題に焦点を当てている)よりもこの種のことに適しています。ブラウザーコントロールへのアクセスはユーザーにとってどういうわけか不可欠なので、この動作を回避する方法があるかどうかは疑問です。
ノーヒルサイド

このためのスタックオーバーフローのQ&Aへのリンク?
ベンロバーツ

7

答えを見つけたかもしれません。次のスタイルを持つようにコンテンツを設定します。

  • height: 100% (コンテンツがビューポートを満たし、下部を超えることができます)
  • overflow-y: scroll(ビューポートの下までスクロールできます。デフォルト値はですvisible
  • -webkit-overflow-scrolling: touch (スクロール動作をスムーズにするため)

SafariのiOSメニューが常に表示されるように表示されます。そうすれば、Safariメニューを開く代わりに、ボタンクリックが実際に機能します。お役に立てれば!


確かにこれは機能しますが、すべてのサイトがoverflow-y: scrollメインコンテンツ領域の設定を許容できるわけではありません。このハックには、そのすべての子要素に影響を与える副作用があります。より正確に言うと、これらのcssプロパティはすべての子要素に直接影響し、サファリメニューを強制的に表示することは実際には副作用です。
zevdg 2018年

ありがとう。画面の下部に向かってタップすることをまだ試していませんが、デザインの少なくとも10%がSafariの不愉快なメニューバーでカバーされていません。これに追加するには、すべての包含要素height: 100%も指定する必要があります。モバイルデバイスから多くのお金を稼ぐ会社にとって、モバイルWebエクスペリエンスは恐ろしいものです。
corysimmons
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.