Webサイトの表示を「パソコン、iPhone、Android、iPadなど」で切り替える方法

カテゴリー:Perl・Javascript・python、サーバー管理メモ(記事数:83)



↑B


2012.01.21

Webサイトの表示を「パソコン、iPhone、Android、iPadなど」で切り替える方法

うちのサイトをiPhoneやスマホなどの画面の小さな端末で見た場合に少しでも見やすいように、右側のメニューが下に回り込むようにしてみました。どうでしょうか?

以下、方法に関する個人的メモ。
切り替えの判断は「ブラウザの横幅で判定」することにしました。
JavaScriptで取得出来るブラウザの横幅の数値には以下の4種類がある。

  • (1) window.innerWidth
  • (2) document.documentElement.clientWidth
  • (3) document.body.clientWidth
  • (4) window.outerWidth
しかしやっかいな事に、取得できるパラメーターはブラウザによって異なる
(1)(2)(3)(4)
Firefox3.6取得可取得可取得可取得可
IE8undef0(ゼロ)取得可undef
Firefox(Android)取得可取得可取得可取得可
Dolphon Browser(Android)取得可取得可取得可取得可
Android純正ブラウザ(横向き)981980980取得可
iPhone4(横向き)981980980480
iPhone4(縦向き)980980980320
iPad(横向き)9819809801024
iPad(縦向き)980980980768
iPhone3GS(横向き)268?464?
iPhone3GS(縦向き)320?304?
BAUM(ケータイモード)231undef231undef
BAUM(デスクトップモード)231undef231undef

もうカオスorz。しかも(3)はheadに書いても取得出来ずbodyに記述した時のみ取得可能
そこで試行錯誤の結果、うちのサイトではbody部分に
-------------------------------
var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
var width2= window.outerWidth;
if (width>width2 && width2>0){width=width2};
if (width>800){
画面が広い場合に行う処理
}
-------------------------------
というスクリプトで表示を切り替えています。
iPhoneが端末によって仕様が異なるしiPhone4ではwindow.outerWidthに使えそうな数字を返す&その他に980という謎仕様のため、少しややこしくなっています。
アドバイスあったらよろしくお願いします。

Category:Perl・Javascript・python、サーバー管理メモ



コメント

いいっすね!=3
001 [01.21 20:38]ぬるぽ(´ω`)★1:JavaScriptをモバイルサイトに使うこと自体がトラブルのもとになっているような…(´・ω… (1)
002 [01.21 20:42]あう@So-net:auのガラケーで見ると崩れています。 (1)
003 [01.21 20:49]774RR@OCN:UAで判定してCSSを切り替える方法じゃいかんのでせうか。
004 [01.21 20:52]ふぇちゅいん TW★40:>>001 いつの時代でつか。 >>003 新しい端末が出るたびに追加するのは面倒っつ
005 [01.21 21:13]macのsafariで@Asahi-Net:他サイトからtarget="_blank"付きのリンクで飛んでくると表示が崩れるな。理屈がわからんけど。
006 [01.21 21:18]web屋:はじめてこのサイトのソース見た。Media Queries使いなはれ。Media Queriesに対応していない古いIE系用に作った上で、Media Queriesで他のブラウザ用に横幅等修正したCSSを適応させればいい。
007 [01.21 21:27]名乗る程の者ではない:最初表示が崩れてた。冷静に考えたら、firefoxの拡張機能NoScriptがJavaScriptを抑制してた。
008 [01.21 21:38]ふぇちゅいんさんふぁん(ねむねむ)★46:なんでJavaScriptを使うの? Scriptを走らせるためにウェブサイト運営してるの? ちがうでしょ。
009 [01.21 21:38]とくめーい:Opera無視とか酷すぎる
010 [01.21 21:52]匿名さん:menu2のflat:right外して、topのwidthを外してmax-widthとmin-widthで構成してやればいい感じになると思うけど。あとはmenu1も下にやりたかったら、menu1とmenu2をdivでまとめてtopの横に置いてやればいい。それと、今時JavaScriptでデザイン弄るのも「いつの時代でつか。」の部類ですよ。


011 [01.21 22:18]ふぇちゅいん TW★40:max-widthにmin-widthなんて便利なものがあるんだ。勉強になります。色々と表示のオンオフを切り替えたいコンテンツもあるのでJavascriptは使う方法でいく予定です。ficebookのブログパーツとかスマホではオフで良いかと。これをオフにするのはjavascriptしか無いよね?
012 [01.21 23:42]えく@UQ:該当記事よりも読み込みが多いんじゃないかというソーシャルプラグインてんこ盛りのページが多くなると、むしろJavascriptをオフにしたくもなる。
013 [01.22 08:05]京ポン3B(意地でもエッジ)★13:掲示板が一番下にあると思ったら、一番上にあったのでよかった。 by lenobo A1
014 [01.22 08:25]とくめい★25:切り替えない選択もできるのか?
015 [01.22 11:38]2:あうのガラケーでも崩れずに見れるようになりました。ありがとうございます。
016 [01.22 12:45]ふぇちゅいん TW★40:>>014なるほど切り替えボタンは実装したいですね。
017 [01.22 12:46]ふぇちゅいん TW★40:>>013 右のメニューを2つに分け、スマホでも使いたい物を上、重要度の低い物を下にしました。
018 [01.23 12:26]:006でも言ってるけど、@media screen and (max-width:xxx){}でがんばれ
019 [01.23 12:27]:あと、jsガシガシ覚えるのめんどくさいからjQueryあたりのライブラリ使うのが吉じゃないかと。捗るぞ
020 [01.23 16:55]似非Webクリエーター?:>>3のよ様にperlでUA毎にスタイルシートのパス切替えれはいいんじゃない?そこは面倒くさがらない!!iOS,Android,WIN32,MACOS,その他くらいで分岐かな。

021 [01.24 00:32]ふぇちゅいん TW★40:max-width使ってみた。こりゃ便利だ♪。 >>020 androidのタブレットとスマホを見分けられないよ。

名前 ↑B

コメント(※改行は省略されます)

※3回以上の連続書き込み不可
この記事のアクセス数:1701
2025.01.25正規表現のオンラインWebチェッカー
2021.12.05中国のSippedが50ドルQVGAののToFカメラユニットを今年中に出荷開始。UVC、UART/SPI出力3コメ
2021.12.05Pythonのコードをワンラインで実行形式に変換してくれるPyInstaller1コメ
2021.12.03チャート、グラフを書くのに良さそうなGoogle Chart以外のJavascriptライブラリ5つ3コメ
2021.11.18まだ使ってる?今は非推奨となったJavaScriptの書き方。document.writeが強く非推奨だと!!!?4コメ
2021.10.19PerlのGD::Image->new()は画像じゃないデータを読み込ませるとエラーになることがあるので事前に手動で画像であることを確認した方が良い1コメ
2021.10.12【解決済み】ヨドバシとかZOZOのサイトにどうやってもスクリプトからアクセス出来ない16コメ
2021.08.31現代的なPerlの記述方法一覧2コメ
2021.07.09JavaScriptでワンタッチで仮想キーボードを表示する2コメ
2021.02.10PythonでPowerPointを作るライブラリ「python-pptx」が色々活用出来そう。22コメ


→カテゴリー:Perl・Javascript・python、サーバー管理メモ(記事数:83)
アクセス数の多い記事(過去1ヶ月)
笳�2025.03.20:縺ゥ繧薙↑荳埼�蜷医′繝サ繝サ繝サ(譛ェ蛻�。�)681access
笳�2025.03.14:8蟷エ縺カ繧翫↓繧オ繝ウ繝ゥ繧、繧コ蜃コ髮イ縺ォ荵苓サ奇シ∝ョカ譌�4莠コ縺ァ縲後た繝ュ蛟句ョ、縲�4驛ィ螻九↓荳翫j荵苓サ翫@縺溘Γ繝「(#縺翫〒縺九¢諠��ア)490access
笳�2025.03.16:螟ァ驥上�繝ャ繝「繝ウ繧剃ス吶&縺壽棡豎∫オ槭k縺ョ縺碁屮縺励>縲ょョ峨>邨槭j蝎ィ縺ッ繧ッ繧ス縺ー縺九j(#閾ェ螳�DIY #繝ォ繝シ繝輔ユ繝ゥ繧ケ豢サ逕ィ)446access
笳�2025.03.11:蛻昴a縺ヲ縺ョ辟シ縺崎i縺阪s縺撰シ育黄隱槭さ繝シ繝昴Ξ繝シ繧キ繝ァ繝ウ)縺ョ譬ェ荳サ蜆ェ蠕�♀鬟滉コ句虻繧偵ご繝�ヨ��シ�シ�シ�シ∝━蠕��驟榊ス灘茜蝗槭j蟷エ邇�3��ィ句コヲ(#縺企≡ #繝槭ロ繝シ)365access
笳�2025.03.17:縺吶°縺�i繝シ縺秋D縺ョ譬ェ繧貞穀讌ュ縺励※44荳��繧イ繝�ヨ縲よ怙蠕後�譬ェ荳サ蜆ェ蠕�r蜿鈴��(#縺企≡ #繝槭ロ繝シ)360access

すべて見る

Perl
2025/04/04 12:06:[企業] BeiGene社が肺癌Ph3試験失敗で抗TIGIT抗体ociperlimabの開発中止(BioToday.com [新着ニュース])
2025/04/03 21:30:(DeepL:オレンジ)(Fierce Biotech)
2025/04/03 00:34:(DeepL:OppoがFind X8 UltraとX8sのティーザー動画を公開、今夜Oppo 2025 Imaging Tech Nightを開催する。)Oppo posts Find X8 Ultra and X8s teaser video, will hold Oppo 2025 Imaging Tech Night tonight(GSMArena.com - Latest articles)
2025/04/01 08:02:マイクロソフト、OSを介さず仮想化ハイパーバイザ上でWasmを高速起動し実行できる「Hyperlight Wasm」、オープンソースで公開(はてなブックマーク - 人気エントリー - 総合)
2025/03/31 23:42:(DeepL:Wide character in HTTP request (bytes required) at /usr/local/perl/5.32/lib/perl5/site_perl/5.32/LWP/Protocol/http.pm line 280.)Shinichir? Watanabe’s New Anime Lazarus Has the Juice(Gizmodo)
2025/03/28 22:22:(DeepL:Wide character in HTTP request (bytes required) at /usr/local/perl/5.32/lib/perl5/site_perl/5.32/LWP/Protocol/http.pm line 280.)Author Correction: Microglial mechanisms drive amyloid-β clearance in immunized patients with Alzheimer’s disease(Nature Medicine)
2025/03/27 10:30:Prime Video 4月新作は「機動戦士Gundam GQuuuuuuX」「片田舎のおっさん、剣聖になる」(AV Watch)
2025/03/23 09:10:(DeepL:小さなキューブ型キャンピングカーは、お金で買える最もステルスなナノホームかもしれない)Tiny cube camper might be the stealthiest nano-home money can buy(New Atlas - New Technology & Science News)
2025/03/21 15:24:(DeepL:人気ジムサプリの筋肉増強効果は誇張されすぎているかもしれない)Popular gym supplement's effects on muscle gains might be overstated(New Atlas - New Technology & Science News)
2025/03/20 03:26:(DeepL:read timeout at /usr/local/perl/5.32/lib/perl5/site_perl/5.32/Net/HTTP/Methods.pm line 274.)Charted: How Amazon Makes Its Billions(Visual Capitalist)
2025/03/20 03:20:(DeepL:read timeout at /usr/local/perl/5.32/lib/perl5/site_perl/5.32/Net/HTTP/Methods.pm line 274.)Split Fiction Players Complete Super-Secret Level And Win Awesome Prize(Kotaku)
2025/03/20 03:16:(DeepL:read timeout at /usr/local/perl/5.32/lib/perl5/site_perl/5.32/Net/HTTP/Methods.pm line 274.)Off-grid tiny house provides road-ready freedom for two(New Atlas - New Technology & Science News)
2025/03/20 00:50:(DeepL:read timeout at /usr/local/perl/5.32/lib/perl5/site_perl/5.32/Net/HTTP/Methods.pm line 274.)The Difference Between Weightlifting and Weight Lifting (and Why It Matters)(Lifehacker)
2025/03/17 17:54:エプソン、オフィス内で使用済みの紙から再生紙を生み出す「PaperLab」に新型 (PC Watch)
2025/03/15 06:56:(DeepL:ハイパーポートチューブの中を時速400マイルで移動する輸送コンテナ)HyperPort: Moving shipping containers at nearly 400 mph through a tube(New Atlas - New Technology & Science News)
2025/03/13 02:44:(DeepL:モンスターハンターワイルドの最強武器はチャージブレード:使いこなすには?)Monster Hunter Wilds' Best Weapon Is The Charge Blade: Here's How To Master It(Kotaku)
2025/03/10 23:36:(DeepL:read timeout at /usr/local/perl/5.32/lib/perl5/site_perl/5.32/Net/HTTP/Methods.pm line 274.)New leak brings more details about the iQOO Z10 series including the launch timeline(GSMArena.com - Latest articles)
2025/03/06 20:56:(DeepL:Wide character in HTTP request (bytes required) at /usr/local/perl/5.32/lib/perl5/site_perl/5.32/LWP/Protocol/http.pm line 280.)Microglial mechanisms drive amyloid-β clearance in immunized patients with Alzheimer’s disease(Nature Medicine)
2025/03/03 17:36:(DeepL:read timeout at /usr/local/perl/5.32/lib/perl5/site_perl/5.32/Net/HTTP/Methods.pm line 274.)(FierceBiotech)
2025/02/27 09:22:[企業] Merck & Coの元研究開発長Roger Perlmutter氏のEikon社が3億5070万ドル調達(BioToday.com [新着ニュース])