facebookの読み込みタグをレスポンシブに対応させる
参考サイトを元に指定した一例
■html
<script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/ja_JP/sdk.js#xfbml=1&version=v2.8"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script> <div class="boxFacebook"></div>
■js
//facebook読み込み // ページプラグインの埋め込みコードを返す。 function pagePluginCode(w) { // 幅に応じて高さを変更する場合 if(w > 400) { var h = 300; } else { var h = 200; } return '<div class="fb-page" data-href="https://www.facebook.com/*****" data-tabs="timeline" data-width="' + w + '" data-height="' + h + '" data-small-header="true" data-adapt-container-width="true" data-hide-cover="false" data-show-facepile="false"><div class="fb-xfbml-parse-ignore"><blockquote cite="https://www.facebook.com/aeon.ryukyu1975"><a href="https://www.facebook.com/*****">ダミーサイト名</a></blockquote></div></div>'; } // ページプラグインを追加する要素 var facebookWrap = $('.boxFacebook'); var fbBeforeWidth = ''; // 前回変更したときの幅 var fbWidth = facebookWrap.width(); // 今回変更する幅 var fbTimer = false; $(window).on('load resize', function() { if (fbTimer !== false) { clearTimeout(fbTimer); } fbTimer = setTimeout(function() { fbWidth = facebookWrap.width(); // 変更後の幅を取得 // 前回の幅から変更があった場合のみ処理 // スマホだとスクロール時にリサイズが発生することがあるため if(fbWidth != fbBeforeWidth) { facebookWrap.html(pagePluginCode(fbWidth)); // ページプラグインのコード変更 window.FB.XFBML.parse(); // ページプラグインの再読み込み fbBeforeWidth = fbWidth; // 今回変更分を保存しておく } }, 200); });
■css
.boxFacebook{ width: 48%; max-width: 485px; } .boxFacebook > .fb-page { width: 100%; } .boxFacebook > .fb-page > span, .boxFacebook iframe { width: 100% !important; }
参考サイト
-
前の記事
比較演算子の『==』と『===』の違い 2017.08.18
-
次の記事
WordPressの標準インストール時に作成されるデータベーステーブルの概要図 2017.09.07