IMUZA.com

Xserver<<WordPress(ConoHa)<<はてなブログ

ホーム / CSS / はてなブログ/軽量・高速ソーシャルボタン・シェアボタン(LINE付き、選択可能版)

はてなブログ/軽量・高速ソーシャルボタン・シェアボタン(LINE付き、選択可能版)

2016/12/14 CSS, javascript, はてなプラグイン, はてなブログ

はてなブログ用の軽量・高速自作ソーシャルボタンの LINE付き、各ソーシャルボタン選択可能版です。

  • 概要
  • ボタンの見た目
    • スマートフォンの場合
  • 利用方法
    • 事前準備(Facebook、Twitter 使用の場合は必須)
    • カスタマイズ > フッタ への挿入コード
    • カスタマイズ > デザインCSS への挿入コード
  • 免責等

概要

改訂版をいくつも公開していますので整理しますと次の通りです。

  1. はてなブックマーク、Facebook、Twitter、Google+ 記事下固定版
    【はてなブログ高速化】自作ソーシャルボタン・シェアボタンで軽量化

  2. はてなブックマーク、Facebook、Twitter、Google+ 記事上下表示可能版
    はてなブログ/軽量・高速ソーシャルボタン・シェアボタン改訂版

  3. 上記2+LINE、各ボタン表示選択可能版
    この記事

  4. 作成過程の説明記事

    • シェアボタン(ソーシャルボタン)を改良して読み込みを速くする
    • Facebookシェアボタン/シェアカウントを素の Javascript で取得する
    • Facebookシェアダイアログでシェアする/Facebook SDK for JavaScript
    • ツイート数付きツイートボタンをオリジナルでつくる(素の javascript 付き)
    • Google+のシェアボタンをカウント付きで自作する

ボタンの見た目

ボタンの見た目は、 CSSで自由に変更できます。デフォルトは次の通りです。

スマートフォンの場合

レスポンシブデザインのテーマを使用していない場合はスマートフォンでは表示されません。レスポンシブデザインのテーマを使用している場合は次のように表示されます。

利用方法

事前準備(Facebook、Twitter 使用の場合は必須)

Facebook と Twitter のシェアカウントを取得するために次の2つの登録が必要です。

  1. Facebook アプリID
    「【はてなブログ高速化3】Facebookシェアダイアログでシェアする/Facebook SDK for JavaScript – IMUZA.com」を参考にアプリID を取得し、以下の挿入コードの42行目「Facebook のアプリID」を自分のアプリID に変更してください。
  2. count.jsoon への登録
    「widgetoon.js & count.jsoon | digitiminimi」でサイトを登録してください。

カスタマイズ > フッタ への挿入コード

  • 不要なソーシャルボタンは、それぞれ<li></li>を削除してください
  • Facebook は、事前準備で取得したアプリIDを42行目「Facebook のアプリID」と差し替えてください
  • Facebook 不要の場合は、ひとつ目の<script></script>も不要です
<ul id="tmplShareButtons">
<!-- 不必要な場合は各リストアイテムを削除 -->
<!-- はてなブックマーク -->
<li class="hatena">
<a class="hatena-bookmark-button" data-hatena-bookmark-layout="simple">
<span class="hatena-bookmark-count share-count"></span>
<i class="blogicon-bookmark lg"></i><span class="share-label">ブックマーク</span></a>
</li>
<!-- Facebook -->
<li class="facebook">
<a href="javascript:void(0)" class="facebook-share-button"> 
<span class="facebook-count share-count"></span>
<i class="blogicon-facebook lg"></i><span class="share-label">シェア</span></a>
</li>
<!-- Twitter -->
<li class="twitter">
<a class="twitter-button">
<span class="twitter-count share-count"></span>
<i class="blogicon-twitter lg"></i><span class="share-label">ツイート</span></a>
</li>
<!-- Google+ -->
<li class="googleplus">
<a class="googleplus-button">
<span class="googleplus-count share-count"></span>
<i class="blogicon-plus lg"></i>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid meet" width="36px" height="22px" viewBox="-14 -8 72 44" class="u7 uzlpSb"><path d="M32 8.2h-3v4h-4V15h4v4h3v-4h4v-2.9h-4V8.2zm6-2V8h3v15h3V4l-6 2.2z"></path><path d="M11.4 11.3v4.5h6c-.4 2.6-2.7 4.5-6 4.5-3.6 0-6.6-3.1-6.6-6.7s2.9-6.7 6.6-6.7c1.7 0 3.1.5 4.3 1.7l3.2-3.2c-2-1.8-4.5-2.9-7.5-2.9C5.3 2.5.3 7.5.3 13.6s5 11.1 11.1 11.1c6.5 0 10.7-4.6 10.7-10.9 0-.8-.1-1.7-.2-2.5H11.4z"></path></svg></a>
</li>
<!-- LINE -->
<li class="line">
<a class="line-button">
<span class="share-count"><i class="blogicon-share lg"></i></span>
<span class="line-label">LINE</span></a>
</li>
</ul>
<script>
  // Facebook 削除の場合は、この<script></script>も削除可
  window.fbAsyncInit = function() {
    FB.init({appId:'Facebook のアプリID',xfbml:true,version:'v2.7'});
  };
  (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";
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));
</script>
<!-- 以下は削除不可 -->
<script>!function(){var e=function(e,t){var n="https://clients6.google.com/rpc?key=AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ",o=new XMLHttpRequest;o.onreadystatechange=function(){if(4===o.readyState&&200===o.status){var e=JSON.parse(o.responseText);t(e.result.metadata.globalCounts.count)}else t(0)},o.open("post",n,!0),o.setRequestHeader("Content-Type","application/json"),o.send(JSON.stringify(e))},t=function(e,t,n){var o=document.createElement("script");o.type="text/javascript";var a="ExternalCallback_"+t;window[a]=function(e){o.parentNode&&o.parentNode.removeChild(o);try{delete window[a]}catch(t){window[a]=null}n(e)},o.src=e+"&callback="+a,document.body.appendChild(o)},n=function(e,t){var n=new XMLHttpRequest;n.open("get",e,!0),n.onreadystatechange=function(){if(4===n.readyState&&200===n.status){var e=JSON.parse(n.responseText),o="share"in e?e.share:{},a="share_count"in o?o.share_count:0;t(a)}else t(0)},n.send(null)},o=0,a=document.getElementById("tmplShareButtons");a.removeAttribute("id"),Array.prototype.forEach.call(document.getElementsByClassName("hentry"),function(s){var r=s.getElementsByClassName("bookmark")[0],l=r.getAttribute("href"),i=r.textContent;Array.prototype.forEach.call(s.getElementsByClassName("social-buttons"),function(s){var r=a.cloneNode(!0);if(a.getElementsByClassName("hatena").length){var c=r.getElementsByClassName("hatena-bookmark-button")[0];c.setAttribute("href","http://b.hatena.ne.jp/entry/"+l),c.setAttribute("data-hatena-bookmark-title",i);var m="http://api.b.st-hatena.com/entry.count?url="+encodeURIComponent(l);t(m,o,function(e){c.getElementsByClassName("hatena-bookmark-count")[0].textContent=e}),o++}if(a.getElementsByClassName("facebook").length){var u=r.getElementsByClassName("facebook-share-button")[0];u.addEventListener("click",function(){FB.ui({method:"share",href:l},function(){})});var m="https://graph.facebook.com/?id="+encodeURIComponent(l);n(m,function(e){u.getElementsByClassName("facebook-count")[0].textContent=e})}if(a.getElementsByClassName("twitter").length){var p=r.getElementsByClassName("twitter-button")[0];p.setAttribute("href","http://twitter.com/intent/tweet?url="+encodeURIComponent(l)+"&text="+i);var m="http://jsoon.digitiminimi.com/twitter/count.json?url="+encodeURIComponent(l);t(m,o,function(e){p.getElementsByClassName("twitter-count")[0].textContent=e.count}),o++}if(a.getElementsByClassName("googleplus").length){var d=r.getElementsByClassName("googleplus-button")[0],h=500,g=500,f=(window.screen.width-h)/2,y=(window.screen.height-g)/2;d.setAttribute("href","javascript:void(window.open('https://plus.google.com/share?url="+encodeURIComponent(l)+"', '_blank', 'width="+h+",height="+g+",left="+f+",top="+y+"'))");var C={method:"pos.plusones.get",id:"p",params:{nolog:!0,id:l,source:"widget",userId:"@viewer",groupId:"@self"},jsonrpc:"2.0",key:"p",apiVersion:"v1"};e(C,function(e){d.getElementsByClassName("googleplus-count")[0].textContent=e})}if(a.getElementsByClassName("line").length){var m="http://line.me/R/msg/text/?"+i+"%0D%0A"+encodeURIComponent(l);r.getElementsByClassName("line-button")[0].setAttribute("href",m)}s.appendChild(r)})}),a.parentNode.removeChild(a)}();</script>

カスタマイズ > デザインCSS への挿入コード

.social-buttons ul {
padding: 0;
margin: 0;
}
.social-buttons ul li {
display: inline-block;
margin: 0;
padding: 0;
list-style-type: none;
width: 15%;
border-radius: 3px;
vertical-align: text-top;
}
.social-buttons ul li a {
width: 100%;
display: inline-block;
color: #fff;
text-decoration: none;
position: relative;
text-align: center;
}
.social-buttons ul li a span.share-count {
display: inline-block;
width: 100%;
color: #000;
background: #fff;
line-height: 2rem;
border-radius: 3px 3px 0 0;
opacity: 1;
-webkit-transition: opacity 0.4s, transform 0.4s;
transition: opacity 0.4s, transform 0.4s;
}
.social-buttons ul li a i {
padding: 0 5px;
}
.social-buttons ul li a i.blogicon-plus {
color: #dd5144;
}
.social-buttons ul li a svg {
position: absolute;
left: 0;
right: 0;
margin: 0 auto;
}
.social-buttons ul li a svg path {
fill: #fff;
}
.social-buttons ul li a span.share-label {
font-size: .7rem;
}
.social-buttons ul li a span.line-label {
font-size: .7rem;
line-height: 1.2rem;
}
.social-buttons ul li a:hover span.share-count {
opacity: 0.8;
}
.social-buttons ul li.hatena {
background: #00a4de;
border: solid 1px #00a4de;
}
.social-buttons ul li.facebook {
background: #3e59a5;
border: solid 1px #3e59a5;
}
.social-buttons ul li.twitter {
background: #1b95e0;
border: solid 1px #1b95e0;
}
.social-buttons ul li.googleplus {
background: #dd5144;
border: solid 1px #dd5144;
}
.social-buttons ul li.line {
background: #00b900;
border: solid 1px #00b900;
}
.social-buttons ul li.line span.share-count i {
color: #00b900;
}
@media (max-width: 767px) {
.social-buttons ul li a span.share-label {
display: none;
}
}

以上です。

免責等

  • 本ツール使用によって発生した問題について責任は負い兼ねますので自己責任でご使用ください
  • ただし、対応可能な問題については可能な限りお答えしますのでコメント欄にお願いします
  • また、バグや各ソーシャルボタンの仕様変更等による問題はお知らせいただければ助かります

【Joomla!】3.6.5 セキュリティフィックスがリリースされています
Dropbox の Public フォルダが 2017/3/15 で終了するようです
Twitter
Facebook
ブックマーク
LINEで送る

最初のサイドバー

最新記事

2023/03/27

WordPress:Fetch(Ajax)でお問い合わせフォーム(プラグインなし)

2023/03/21

WordPress:メール送信にGmailのSMTPを使う(プラグインなし)

2023/03/10

WordPress:サムネイル付き次の記事/前の記事

2023/02/28

Twitterシェアリンクはintent/tweetを使おう

2023/02/21

GoogleタグマネージャーとアナリティクスGA4

最新記事を一覧で見る

よく読まれている記事

よく読まれている記事を一覧で見る

カテゴリー

  • はてなブログ214
  • WebTips109
  • javascript98
  • Joomla!88
  • Windows68
  • Wordpress66
  • CSS63
  • Joomla!更新53
  • Linux49
  • はてなテーマ45
  • Google34
  • Plamo33
  • はてなプラグイン25
  • php22
  • Node.js18
  • Ubuntu16
  • SASS16
  • laravel415
  • Chrome11
  • cms-style10
  • iPhone9
  • ConoHa WING6
  • Git入門6
  • genesis6
  • Python5
  • Android5
  • PC全般4
  • Facebook4
  • スマートフォン4
  • 静的サイトジェネレーター3
  • Firefox3
  • SSD3
  • Blankslate3
  • Docker3
  • Twitter2
  • GitHub2
  • Mactype2
  • はてなブクマ1
  • 映画1
  • youtube1
  • rails入門1
  • Xserver1

Footer

My Web Sites

  • @半径とことこ60分
  • そんなには褒めないよ。映画評
  • IMUZA.com
  • GitHub

Related Sites

  • WordPress公式
  • WordPress関数リファレンス
  • PHPマニュアル

Contact Us

  • お問い合わせフォーム
  • Twitter
  • Facebook
  • Feedly

Copyright © 2023 · IMUZA.com