「公式ツイートボタンが重い」「iframe版だと幅が揃わない」などの理由から、自作のボタンを作成してみることにしました。 本ブログには適用済み、ついでにはてブも自作ボタンに変更しています。
※サンプルでは大中小3種類のclassを用意しています。
※ツイート数、はてブ数の取得はAPIを使用
※jQuery1.6.2を使用
追記:
「横幅を同じにして、縦に並べることはできないか」というお問い合わせを頂きました。
CSSと画像を調整すれば可能ですが、作成する余裕がありません…。
取り急ぎ、数字を取得して挿入するだけのサンプルを用意しました。
※分かりやすいように、一部、外部JSに変更しました。
※時間がとれたら横幅揃えたバージョンも作ってみます。
以下ソースです。
ソース
HTML
</p>
<ul class="social-link">
<li id="twitter">
<li id="hatebu">
</ul>
<p>
JavaScript
<script src="http://www.google.com/jsapi"></script>
<script>google.load('jquery', '1.6.2');</script>
<script>
$(function(){
var url = document.location.protocol + '//' + document.location.host + document.location.pathname;
var text = document.title;</script></p>
<div class="highlighter-rouge">
<pre class="highlight"><code>/* 引数:挿入ID、使用するclass名、ツイート数を取得したいURL、ツイート用テキスト */
tweetlink('twitter', 'tweet-medium', url, text);
/* 引数:挿入ID、使用するclass名、はてブ数を取得したいURL */
hatebulink('hatebu', 'hatebu-medium', url); });
</code></pre>
</div>
<p>var tweetlink = function(_id, _class, _url, _text){
_url = encodeURI(_url);
_text = encodeURIComponent(_text);</p>
<div class="highlighter-rouge">
<pre class="highlight"><code>$.getJSON('http://urls.api.twitter.com/1/urls/count.json?url=' + _url + "&callback=?", function(data) {
$('<a>',{
'href': 'http://twitter.com/share?url=' + _url + '&text=' + _text,
'title': 'ツイートする',
'class': _class,
'target': '_blank'
})
.append(
$('<span>')
.html(data.count)
)
.appendTo($('#' + _id));
}); };
</code></pre>
</div>
<p>var hatebulink = function(_id, _class, _url){
_url = encodeURI(_url);</p>
<div class="highlighter-rouge">
<pre class="highlight"><code>$.getJSON('http://api.b.st-hatena.com/entry.count?url=' + _url + "&callback=?", function(data) {
$('<a>',{
'href': 'http://b.hatena.ne.jp/entry/' + _url,
'title': 'はてブする',
'class': _class,
'target': '_blank'
})
.append(
$('<span>')
.html(data)
)
.appendTo($('#' + _id));
}); }; </script>