portfolio-website/project/static/js/social-buttons.js

96 lines
2.6 KiB
JavaScript

/*============================================================================
Social Icon Buttons v1.0
Author:
Carson Shold | @cshold
http://www.carsonshold.com
MIT License
==============================================================================*/
window.CSbuttons = window.CSbuttons || {};
$(function() {
CSbuttons.cache = {
$shareButtons: $('.social-sharing')
}
});
CSbuttons.init = function () {
CSbuttons.socialSharing();
}
CSbuttons.socialSharing = function () {
var $buttons = CSbuttons.cache.$shareButtons,
$shareLinks = $buttons.find('a'),
permalink = $buttons.attr('data-permalink');
// Get share stats from respective APIs
var $fbLink = $('.share-facebook'),
$twitLink = $('.share-twitter'),
$pinLink = $('.share-pinterest'),
$googleLink = $('.share-google');
if ( $fbLink.length ) {
$.getJSON('https://graph.facebook.com/?id=' + permalink + '&callback=?', function(data) {
if (data.shares) {
$fbLink.find('.share-count').text(data.shares).addClass('is-loaded');
} else {
$fbLink.find('.share-count').remove();
}
});
};
if ( $twitLink.length ) {
$.getJSON('https://cdn.api.twitter.com/1/urls/count.json?url=' + permalink + '&callback=?', function(data) {
if (data.count > 0) {
$twitLink.find('.share-count').text(data.count).addClass('is-loaded');
} else {
$twitLink.find('.share-count').remove();
}
});
};
if ( $pinLink.length ) {
$.getJSON('https://api.pinterest.com/v1/urls/count.json?url=' + permalink + '&callback=?', function(data) {
if (data.count > 0) {
$pinLink.find('.share-count').text(data.count).addClass('is-loaded');
} else {
$pinLink.find('.share-count').remove();
}
});
};
if ( $googleLink.length ) {
// Can't currently get Google+ count with JS, so just pretend it loaded
$googleLink.find('.share-count').addClass('is-loaded');
}
// Share popups
$shareLinks.on('click', function(e) {
e.preventDefault();
var el = $(this),
popup = el.attr('class').replace('-','_'),
link = el.attr('href'),
w = 700,
h = 400;
// Set popup sizes
switch (popup) {
case 'share-twitter':
h = 300;
break;
case 'share-fancy':
w = 480;
h = 720;
break;
case 'share-google':
w = 500;
break;
}
window.open(link, popup, 'width=' + w + ', height=' + h);
});
}
$(function() {
window.CSbuttons.init();
});