読者です 読者をやめる 読者になる 読者になる

IMUZA.com

Joomla!によるウェブ制作, PHP, Javascript, CSS

はてなブログ

はてなブログ テーマ制作
・とことこ with Menubar
・Simple Responsive with Menubar
・Mobile-First Responsive
・Hyperspace

Joomla!

Joomla! によるウェブ制作
・テンプレート自作
・モジュール自作
・Joomla!でサイト構築

Web Tips

ウェブサイトづくりに役立つかも
・Javascript
・CSS

Windows, Linux

Windows10
Plamo Linux

iPhone の safari のユーザーエージェントは何だ?

Web Tips

はてなブログのテーマをつくっているのですが、モバイルでは navigation-panel をアイコンのクリックで左からスライドさせようとしています。

hyperspace の検索結果 - IMUZA.com

で、その位置は、片手持ちでも操作しやすい下がいいだろうと、fixed の bottom:0 にしようとしたところ、iPhone の Safari は、下のバー、ナビゲーションバーとでも言うのでしょうか、上部のアドレスバー縮小と連動して出たり消えたりします。

(2016/5/10)以下の記述には誤りがあります。「hyperspace じゃなくなってきた=はてなブログテーマ hyperspace (5) - IMUZA.com」も御覧ください。

ですので、navi-panel 用のアイコンを bottom:0 にすればバーの裏に入ってしまいますし、bottom:70px(iPhone5s)にしておくと、バーが消えた場合でもその位置に残ってしまいます。つまり、Safari 用に設定すれば、android でも常に下から離れた位置に表示されることになります。

f:id:ausnichts:20160427120034p:plain

鬱陶しい!

このバーをコントロール出来ないものかといろいろ調べても、どうやらなさそうです。

で、ユーザーエージェントで振り分けようと思い、iPhone の Safari のユーザーエージェントを調べたのですが、これまたややこしいです。iPhone の Chrome も ユーザーエージェントに Safari を吐き出すのですね。

左が Safari 、右が Chrome です。

f:id:ausnichts:20160427121056p:plain
f:id:ausnichts:20160427121102p:plain

これを見ても、Safari を特定できるものがありません。しいて言えば、iPhone と Version があることですかね。ただ、Version なんて一般的な言葉ですから、他のブラウザでも吐きそうです。Chrome は、CriOS で特定できそうですが、他にも iPhone 用のブラウザがあるわけですから Chrome 以外というわけにもいきません。

悩んでいても仕方がありませんから、しばらく、iPhone && Version で様子を見てみましょう。

var ua = navigator.userAgent.toLowerCase();
if(ua.indexOf('iphone') !== -1 && ua.indexOf('version') !== -1) document.body.classList.add('safari');