これは iOS6 で動作しますが、残念ながら iOS7 では動作しません: http://jsbin.com/wayurebu/1
コードは固定ヘッダーでは機能しますが、固定フッターでは機能しません。documentElement.className の変更と固定配置要素の表示への切り替えの組み合わせにより、レンダリング エンジンは固定ビューポートを再計算し、すべての固定要素を再配置する必要があります。
500 ミリ秒のタイマーが必要なのは、タッチ スクロール時にスクロール イベントが失敗する場合があるためです。
<style>
#fix1, #fix2 { display: none; position: fixed; top: 0; left: 0; height: 1px; width: 1px; z-index: 2;}
.head1 #fix1, .head2 #fix2 { display: block; }
</style>
<div id=fix1></div>
<div id=fix2></div>
<script>
var toggleTimer;
var headerToggle = 0;
$(window).on('scroll', function() {
function toggle() {
var toggleit = !(headerToggle++ % 2);
$(document.documentElement).toggleClass('head1', toggleit);
$(document.documentElement).toggleClass('head2', !toggleit);
}
toggle();
clearTimeout(toggleTimer);
toggleTimer = setTimeout(toggle, 500);
});
</script>