31
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iosでスクロールできない時

Last updated at Posted at 2017-12-18

何度か同じバグにぶち当たってる気がするので、備忘録も兼ねて書いておきます。

スマホでナビゲーションを実装する時にスクロールできたり、できなかったりするバグがある。
jsの書き方が悪いのかな?とか思って調べてみたが、なんてことはない、cssの書き方の問題でした。
ios9ios10 で確認済み。

原因

同じ要素の
position プロパティに absolutefixedで絶対位置指定をしている
height プロパティと overflow プロパティを使って要素内スクロールさせようとしている
-webkit-overflow-scrolling プロパティに touch を指定している

Before


.menu-content {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 11;
  max-height: 77vh;
  padding-top: 55px;
  background-color: #fff;
  -webkit-overflow-scrolling: touch;
  overflow-scrolling: touch;
  overflow-y: scroll;
}

解決方法

After


.menu-content {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 11;
  background-color: #fff;
}
.menu-content-inner {
  padding-top: 55px;
  max-height: 73vh;
  -webkit-overflow-scrolling: auto;
  overflow-scrolling: auto;
  overflow-y: scroll;
}

positionoverflowを別の要素に指定してあげる。

overflow-scrollingautoにする。

これで解消できました。
touchを指定したままだと、解消できなかったのですが、autoだと慣性スクロールができないので、使い勝手が悪いです。。

何か解決方法ないですかね。

参考URL
https://qiita.com/chocolamint/items/67d25933880404c93db0

31
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?