古い質問のようなものですが、特にInkbugによって提供されたコードサンプルが期待どおりに機能しないため、ここで私の発見を共有したいと思いました。
オーバーフロープロパティのサポート
overflow-y
CSS2.1の時代から存在しています(ただし、かなり最近、css3仕様で標準化されています)。そのため、デスクトップブラウザでのサポートは非常に適切です。
ここで質問しているのはoverflow-y: scroll
、特定の要素を指定したときにスクロール動作が実際に機能するかどうかです。
この動作は、ごく最近、モバイルブラウザで導入されました。より正確には、AppleはiOS 5にベンダープレフィックスを付けて導入しました( Appleのドキュメントの-webkit
176ページを参照)。
Androidの具体的な情報は見つかりません。
(ベンダーに接頭辞が付いているかどうかにかかわらず)のサポートについて私が言えること:overflow-scrolling
- 最新のnexus7(Android 4.1.1):はい
- Android 2.3.x:いいえ
- iOS> = 5:はい
- iOS <5:いいえ
スクロールオーバーフローの機能検出
要素にスクロール動作を与えたい場合は、機能検出を使用することをお勧めします。
これは、このプロパティ を検出する方法を示す要点です(それ以降、Modernizrに統合されています)。Modernizrを使用したくない場合は、ほとんど同じことを行う単純なバージョンを次に示します。scrolling-overflow
/**
* Test to see if overflow-scrolling is enabled.
*/
var hasCSSProperty = function(prop) {
if (window.getComputedStyle) {
return window.getComputedStyle(document.body, null)[prop];
} else {
return document.body.currentStyle[prop];
}
};
var supportOverflowScrolling = function() {
if (hasCSSProperty('overflow-scrolling') ||
hasCSSProperty('-webkit-overflow-scrolling') ||
hasCSSProperty('-moz-overflow-scrolling') ||
hasCSSProperty('-o-overflow-scrolling')) {
return true;
} else {
return false
}
};