iOSやAndroidに搭載されているモバイルSafariではposition:fixedが利用できません。
position:fixedを再現するためにはjavascriptを使うのが楽ちんです。javascriptのライブラリではYUIや有料版のSencha Touchというものがあるらしいですが、今回はiscroll.jsを利用します。
iscroll公式サイトから最新版のiscroll.jsをダウンロードします。
<script type="application/javascript" src="iscroll.js"></script>
iscroll.jsのみ利用する場合はjquery等のライブラリは必要ありません。
公式サイトでは基本的な利用タグが紹介されています。
<script type="text/javascript"> var myScroll; function loaded() { myScroll = new iScroll('wrapper'); } document.addEventListener('DOMContentLoaded', loaded, false); </script>
しかし上記のまま利用しようとすると、inputタグが利用できなくなってしまうという不具合が起こります。
そんなときは、下記のコードを利用すれば解消されます。
var myScroll; function loaded() { myScroll = new iScroll('wrapper', { useTransform: false, onBeforeScrollStart: function (e) { var target = e.target; while (target.nodeType != 1) target = target.parentNode; if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA') e.preventDefault(); } }); } document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false); document.addEventListener('DOMContentLoaded', loaded, false);
これでiPhoneでもAndroidでもposition:fixedを再現できますね!