Skip to content

Instantly share code, notes, and snippets.

@dingo-d
Created July 25, 2018 10:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dingo-d/bb3248c272361480f55ccad1122e74c0 to your computer and use it in GitHub Desktop.
Save dingo-d/bb3248c272361480f55ccad1122e74c0 to your computer and use it in GitHub Desktop.
Social share buttons taken from, with permission, Swifty bar plugin made by Goran Jakovljevic http://www.itsgoran.com/swiftybar/
jQuery(document).ready(function ($) {
'use strict';
$.fn.socShare = function(opts) {
var $this = this;
var $win = $(window);
opts = $.extend({
attr : 'href',
facebook : false,
google_plus : false,
twitter : false,
linked_in : false,
pinterest : false
}, opts);
for(var opt in opts) {
if(opts[opt] === false) {
continue;
}
var url;
var name;
switch (opt) {
case 'facebook':
url = 'https://www.facebook.com/sharer/sharer.php?u=';
name = 'Facebook';
_popup(url, name, opts[opt], 400, 640);
break;
case 'twitter':
var posttitle = $(".sbtwitter a").data("title");
url = 'https://twitter.com/intent/tweet?&text='+posttitle+'&hashtags=madebydenis,wordpress&url=';
name = 'Twitter';
_popup(url, name, opts[opt], 440, 600);
break;
case 'google_plus':
url = 'https://plus.google.com/share?url=';
name = 'Google+';
_popup(url, name, opts[opt], 600, 600);
break;
case 'linked_in':
url = 'https://www.linkedin.com/shareArticle?mini=true&url=';
name = 'LinkedIn';
_popup(url, name, opts[opt], 570, 520);
break;
case 'pinterest':
url = 'https://www.pinterest.com/pin/find/?url=';
name = 'Pinterest';
_popup(url, name, opts[opt], 500, 800);
break;
default:
break;
}
}
function isUrl(data) {
var regexp = new RegExp( '(^(http[s]?:\\/\\/(www\\.)?|ftp:\\/\\/(www\\.)?|(www\\.)?))[\\w-]+(\\.[\\w-]+)+([\\w-.,@?^=%&:/~+#-]*[\\w@?^=%&;/~+#-])?', 'gim' );
return regexp.test(data);
}
function _popup(url, name, opt, height, width) {
if(opt !== false && $this.find(opt).length) {
$this.on('click', opt, function(e){
e.preventDefault();
var top = (screen.height/2) - height/2;
var left = (screen.width/2) - width/2;
var share_link = $(this).attr(opts.attr);
if(!isUrl(share_link)) {
share_link = window.location.href;
}
window.open(
url+encodeURIComponent(share_link),
name,
'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height='+height+',width='+width+',top='+top+',left='+left
);
return false;
});
}
}
return;
};
$('.sb_share').socShare({
facebook : '.sbsoc-fb',
twitter : '.sbsoc-tw',
google_plus : '.sbsoc-gplus',
linked_in : '.sbsoc-linked',
pinterest : '.sbsoc-pint'
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment