iframe 内にあるモバイル Web ページにシンプルな左プル バーガー メニューを実装しました。ただし、iPhone での動作はおかしくなります。一般的なページ レイアウトなどには Bootstrap を使用しています。
WeInRe を使用して、次の動作に気付きました: 320px の iframe で fixedwidth
に、たとえば、left: 50px
そのbody
中のページの に追加すると、これは問題なく左にbody
移動しますが、代わりに幅で表示され始めます従来通り。
さらに悪いことに、正しい値はパーセンテージであるため、ボディの幅が大きくなり、その後、再計算されて、メニューがビューポートよりも大きくなります。50px
370px
320px
left
left
ここで一体何が起こっているのですか?これは Mobile Safari の既知のバグのようなものですか?
残念ながら、この問題について公開されているコードはまだありません...
これは関連するコードです:
.offcanvas {
left: 0;
position: relative;
}
.offcanvas.active {
left: 75%;
overflow: hidden;
}
.sidebar {
position: fixed;
background-color: #5c008a;
top: 0;
left: -75%;
width: 75%;
height: 100%;
}
.offcanvas.active .sidebar {
left: 0;
}
$('[data-toggle="offcanvas"]').click(function() {
$('.offcanvas').toggleClass('active');
});
<body class="offcanvas">
[...]
<div class="sidebar">[...]</div>
[...]
</body>
これは、チュートリアルの一連のサイド メニューに基づいたサンプルです(左または右のプッシュ オプションをクリックします)。