https://codepen.io/jrobinsonc/pen/jYrxwb
To transpile the JavaScript, can use:
For Sass to CSS, can use:
https://codepen.io/jrobinsonc/pen/jYrxwb
To transpile the JavaScript, can use:
For Sass to CSS, can use:
<!doctype html> | |
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
</head> | |
<body> | |
<div class="share-js" data-uri="http://joserobinson.com/" data-text="Software Developer" data-via="jrobinsonc"> | |
<span>Share</span> | |
<a class="twitter" href="javascript:;" title="Share on Twitter">Twitter</a> | |
<a class="facebook" href="javascript:;" title="Share on Facebook">Facebook</a> | |
<a class="google-plus" href="javascript:;" title="Share on Google Plus">Google Plus</a> | |
<a class="print" href="javascript:window.print();" title="Print this page">Print</a> | |
</div> | |
</body> | |
</html> |
// You need jQuery: | |
// const $ = require('jquery'); | |
// or | |
// const $ = jQuery; | |
$('.share-js a').on('click', (evt) => { | |
evt.preventDefault(); | |
const $link = $(evt.currentTarget); | |
const $container = $link.parent(); | |
let url = ''; | |
let windowSize = [550,350]; | |
switch ($link.attr('class')) { | |
case 'facebook': { | |
url = `https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent($container.data('uri'))}`; | |
break; | |
} | |
case 'twitter': { | |
url = `https://twitter.com/intent/tweet?url=${encodeURIComponent($container.data('uri'))}&text=${encodeURIComponent($container.data('text'))}`; | |
const twitterVia = $container.data('via') || ''; | |
if (twitterVia !== '') { | |
url = `${url}&via=${encodeURIComponent(twitterVia)}`; | |
url = `${url}&related=${encodeURIComponent(twitterVia)}`; | |
} | |
break; | |
} | |
case 'google-plus': { | |
windowSize = [515, 490]; | |
url = `https://plus.google.com/share?url=${encodeURIComponent($container.data('uri'))}`; | |
break; | |
} | |
default: { | |
// do nothing | |
} | |
} | |
if (url !== '') { | |
window.open(url, 'sharejs', `width=${windowSize[0]},height=${windowSize[1]},menubar=no,toolbar=no,resizable=yes`); | |
} | |
}); |
.share-js { | |
span { | |
display: block; | |
font-weight: bold; | |
text-transform: uppercase; | |
} | |
a { | |
display: inline-block; | |
text-decoration: none; | |
height: 32px; | |
line-height: 32px; | |
margin-right: 5px; | |
padding: 0 10px; | |
color: #fff; | |
&.facebook { | |
background: #3B5997; | |
} | |
&.twitter { | |
background: #41B7D8; | |
} | |
&.google-plus { | |
background: #D64937; | |
} | |
&.print { | |
background: #A5A5A5; | |
} | |
} | |
} |