2015年8月23日

スマホで背景がチカチカする。Bloggerモバイルサイトのバグ修正。

スポンサードリンク

 もうこれが最後のBloggerカスタムかもしれません。
ほぼ完成です!

背景に画像を使っている時、スマホ(AndroidとスマホChrome)で
チカチカして見にくいのを改善。

iPhoneでは問題なさそうでした。機種によるのかも?





背景に画像を使うとモバイル表示でチカチカする



 チカチカする、を具体的に言いますと。

スマートフォンで画面下にスクロールすると、
背景画像とコンテンツの文章が交互に表示されたりする事です。

画面がチラついてとっても見にくいのです。


 おそらくAndroidの標準ブラウザで起こります。

ただし、Android4.1未満の古いタイプでは起こりません。
実際に古いAndroidで見たら、
何も異常はなくキレイに表示されました。

なので仕様の変更により、Blogger表示の相性が悪くなったのかも?


 今後Androidは標準ブラウザからChromeにシフトしていくそうです。
ですが、今はまだ標準ブラウザを使っている方が多いので、
メンテナンスします。


レイアウトで背景画像を指定している方



 そんなに難しくないので大丈夫です。

まず、自分の背景画像のURLを調べます。
サイトを開き、ブラウザ上で

Chromeなら右クリック→

要素を検証(N)→

ソースがブラウザ下に表示される、右側にstylesが表示→

stylesに

body {

の欄があります。
これはコンテンツ全体のCSSを指定している箇所。
背景とか。

この中に

background: transparent url(http://ここはあなたの画像URL/background.png) repeat fixed top left;

という欄があります。
これをコピーして、メモ帳等に貼り付けてください。


 チェックして欲しいのは、

fixed

があるか無いかです。
これは、スクロールした時に背景画像を動かさずに固定する指示。

その方が見やすいですからね。
コンテンツが。


 スクロール固定していない方は、fixedの表示はありません。
デフォルト(空欄)では固定されない事となります。


原因はfixedで背景が固定される事、モバイルで解除する




 原因はfixedです。
このfixedが背景画像をスクロールさせないように固定するのですが、
なぜかAndroidブラウザと相性が悪いのです。

背景画像がコンテンツ文章の上にチカチカ表示される
バグが起こります。


 しかし、PCではスクロール固定しておきたいです。
なので、

Blogger管理画面→レイアウト→背景画像

で指定した背景画像はそのままでOK。



 ここからモバイル・スマホ表示のみ、
背景画像をスクロール固定させない、解除させる指示をCSSに
追加します。

追加箇所を間違いやすいので注意して下さい。


BloggerのCSSでスクロール固定を解除



 Blogger管理画面→

テンプレート→

HTMLの編集→

/* Mobile

または

body.mobile {
  background-size: $(mobile.background.size);
}

を検索します。


 必ずbodyの、モバイルのCSS部分に追加します。
そうしないとPCでスクロール固定が解除されてしまいます。

body~から始まるCSSはいくつもあるので、
追加箇所を間違えないようにしましょう。



 ここに、先ほどメモ帳にコピーしたコードを貼り付けます。
追加する形です。


body.mobile {
  background-size: $(mobile.background.size);
background: transparent url(http://ここはあなたの画像URL/background.png) repeat top left;
}


お気付きですね?

fixedを削除しています。
つまり、レイアウトで背景画像はスクロール固定に設定されていますが、
モバイルのみ固定解除するようにCSSを上書きするのです。

これでうまくいくかなぁと試したら上手くいきました。


 CSSを追加しても上書きされないで、
スマホでスクロール固定されたままの方は下記をどうぞ。


レイアウトでスクロール固定を解除する



 うまくいかない場合は、レイアウトでスクロール固定を解除するしか
ありません。

これでスマホ、モバイル表示ではスクロール固定は解除されているので
問題なくなります。

あとは、PC表示でどうするか、ですね。


 難しい設定が嫌な場合は、
背景画像から背景色のみに変更する事です。
こうすれば何もすることはありません。


 では、PCのみCSSでスクロール固定させる方法です。


/* Content

または

body {
  font: $(body.font);
  color: $(body.text.color);
  background: $(body.background);
}

を検索します。

ここはPC表示のbody指定箇所ですが、
お使いのテンプレートによってはモバイルも絡んでいる可能性があります。

バックアップを取っておいて
色々試しましょう。

失敗してもバックアップがあれば、
元に戻せばいいだけです。


 ではカスタマイズします。

  background: $(body.background);


レイアウトに入力した内容を呼び出すコードです。

レイアウトで背景画像は指定されていると思います。
なので、


background: transparent url(http://ここはあなたの画像URL/background.png) repeat fixed top left;

に置換えましょう。(置換えないやり方も下記にあります)



 置換えると、
後で元に戻す時にコードがわからなくなるので嫌だという方もいます。
元のコードはちなみにこちらです。

  background: $(body.background);


なので、元のコードは残したまま、
スクロール固定させるコードも載せておきます。

個人的にはこちらの方がいいかもと思います。



body {
  font: $(body.font);
  color: $(body.text.color);
  background: $(body.background) ;
  background-attachment: fixed;
}


このコードがうまくいかない場合は、やはり

background: transparent url(http://ここはあなたの画像URL/background.png) repeat fixed top left;


に置換えましょう。

お使いのテンプレートによってうまくいかない場合もあると思います。


 とにかくバックアップは事前に取っておいて、
何度も スマホとPCでで表示をチェックしたいですね。



 こちらのブログはBloggerです。
WordPressの実際の表示を確認したい方は
ラビットしま子の「人生美容パラダイス」をご覧下さい。


 当ブログの情報は全ての方に応用できるとは限りません。
ご利用は自己責任です。当ブログ側はいかなる責任も負いません。

必ずデータは最新のバックアップを取っておいて下さい。


 WordPressを利用される場合はUTF-8Nの文字コードに必ず変換して下さい。

当ブログのコードをコピーしてphpファイル等に直で貼付けすると
ファイルやデータが破損します。
パソコンのメモ帳は不可です。

詳細はWordPressヘルプを参照下さい。


 ラビットしま子はサイト制作のプロではありません。
個別のカスタマイズについての相談は乗ってあげたいけど、乗れません。
(わからんから)


スポンサードリンク