diff --git a/component.json b/component.json index b8679a9..11eadf6 100644 --- a/component.json +++ b/component.json @@ -1,6 +1,6 @@ { "name": "social-likes", - "version": "2.0.1", + "version": "2.0.2", "main": ["./social-likes.min.js", "./social-likes.css"], "dependencies": { "jquery": ">=1.7" diff --git a/social-likes.css b/social-likes.css index 302352d..eeddd68 100644 --- a/social-likes.css +++ b/social-likes.css @@ -19,7 +19,8 @@ .social-likes_vertical{margin:-6px -4px;} .social-likes_vertical .social-likes__widget{display:block;margin:6px 4px} .social-likes_single-w{position:relative;display:inline-block} -.social-likes_single{position:absolute;display:none;top:-19px;left:-15px;padding:6px 6px 4px;background:#fff;text-align:left;-webkit-box-shadow:0 0 15px rgba(0,0,0,0.3);box-shadow:0 0 15px rgba(0,0,0,0.3);z-index:99999} +.social-likes_single{position:absolute;display:none;top:-6px;left:-6px;padding:6px 6px 4px;background:#fff;text-align:left;-webkit-box-shadow:0 0 15px rgba(0,0,0,0.3);box-shadow:0 0 15px rgba(0,0,0,0.3);z-index:99999} +.social-likes_single .social-likes__widget:first-of-type{margin-right:14px} .social-likes__button_single{position:relative;padding-left:19px;background:#e2e2e2;background:-webkit-linear-gradient(top, #f7f7f7, #e2e2e2);background:-moz-linear-gradient(top, #f7f7f7, #e2e2e2);background:-ms-linear-gradient(top, #f7f7f7, #e2e2e2);background:-o-linear-gradient(top, #f7f7f7, #e2e2e2);background:linear-gradient(top, #f7f7f7, #e2e2e2);color:#444;border-color:#ccc;border-color:rgba(179,179,179,0.8);border-bottom-color:rgba(153,153,153,0.8)} .social-likes__button_single:hover{background:#f4f4f4;background:-webkit-linear-gradient(top, #f0f0f0, #cfcfcf);background:-moz-linear-gradient(top, #f0f0f0, #cfcfcf);background:-ms-linear-gradient(top, #f0f0f0, #cfcfcf);background:-o-linear-gradient(top, #f0f0f0, #cfcfcf);background:linear-gradient(top, #f0f0f0, #cfcfcf);color:#222;border-color:#bbb;border-bottom-color:#9f9f9f} .social-likes__icon_single{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAplJREFUeNpMkl9IU2EYxp/zt50NxU3bnNYMLEANVQoCvYmJgQyI8Mbwxju9KlSEVClE8G4iiOq1oBhDoRQIQiTGCEMYkoyIMmyItrbh3Dk7/8/X2QmiB96bD37v9z4PD0UIoaPb0ZcZPfPUgBGgQFm6pUM3dZTFMRw4mgMBoVmwvwN84PXok9FXTJpLj2nXtTGNaDc0SnMRlgjeCq/gq/QJ/iq/IFmSkFNzAhi4LMryFeni3e232xzrueXpk1TJZ4NgORZ9bX3ovt2N/7X3bQ+7qV2IsghapX3CTSHCXqqXzSZrguIoTIen0VjdiLPCGRI/Ew7UFepyFqUyKcRP4nBTbqia2sSWtBLJy3lMPJpwoJ0vO1j8uAhJkxxw42gDbbVtSP1KOV5VQwXRCWFDvpC1GllFjacGWSmL+fg86irrsBBZAAFBNB5F4jQBN+dGUSvCTg6cwRGaoRlShsraP9lHRspg+MEwmv3NaPG3YPDeIEpGCV7Bi6ZAkzM8y4M9PD2keld7QfEU7NTg5t0oyIV/wRSVIi6uLjATnkHPnR7nberNlMUqhgJFVkBbNOzvHQ9zH+aQlbMghGD5YBm1FbUIN4ZhmAZixzGkc2mwpmkSjuJgEQsMGEw+nMRacg3j78ad7eWTlyJLsC1hPbmOka0RBPmgAwIGIOoiBu4PoL+135nkeRIUKLQH250Fm0ebmH0/i4aqBliKZYOG+R0mfAIrYCu5BVmVMdQ5hI5ghwOkC2msJFYQ+xyDh/aAmASmbv6gQo9Dz6o7q1/YcJAwBHYhnH7WuP8mnS1lnd56r3kBgrLO85/yC0zr89aD3HFOp3k6QAzCuIjrijEZsSSVRKWkiLzFiy7LJVqaJZuK+VU+k1fqO+ujfwQYAFtLOreC/KO5AAAAAElFTkSuQmCC");background-position:2px 3px} diff --git a/social-likes.min.js b/social-likes.min.js index dbef42e..d66edd0 100644 --- a/social-likes.min.js +++ b/social-likes.min.js @@ -1,2 +1,2 @@ -/*! Social Likes v2.0.1 by Artem Sapegin - http://sapegin.github.com/social-likes - Licensed MIT */ -(function(e){typeof define=="function"&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){"use strict";function s(e){this.container=e,this.init()}function o(t,n){this.widget=t,this.options=e.extend({},n),this.detectService(),this.service&&this.init()}function u(e,t){for(var n in t)t.hasOwnProperty(n)&&(e=e.replace("{"+n+"}",encodeURIComponent(t[n])));return e}function a(e,t){for(var n in t)t.hasOwnProperty(n)&&(e=e.replace("{"+n+"}",t[n]));return e}function f(e,n){var r=t+e;return r+" "+r+"_"+n}function l(t){var r=e(document),i="click.social-likes"+Math.random();r.on(i,function(s){e(s.target).closest(t).length||(t.fadeOut(n),r.off(i))})}function c(e,t){if(document.documentElement.getBoundingClientRect){var r=parseInt(e.css("left"),10),i=parseInt(e.css("top"),10);e.css("visibility","hidden").show();var s=e[0].getBoundingClientRect();s.leftwindow.innerWidth-t&&e.css("left",window.innerWidth-s.right-t+r),s.topwindow.innerHeight-t&&e.css("top",window.innerHeight-s.bottom-t+i),e.hide().css("visibility","visible")}e.fadeIn(n)}var t="social-likes__",n="fast",r={facebook:{counterUrl:"http://graph.facebook.com/?ids={url}&callback=?",convertNumber:function(e){for(var t in e)if(e.hasOwnProperty(t))return e[t].shares},popupUrl:"http://www.facebook.com/sharer/sharer.php?u={url}",pupupWidth:600,popupHeight:500},twitter:{counterUrl:"http://urls.api.twitter.com/1/urls/count.json?url={url}&callback=?",convertNumber:function(e){return e.count},popupUrl:"http://twitter.com/intent/tweet?url={url}&text={title}",pupupWidth:600,popupHeight:450,additionalParams:["via","related"]},mailru:{counterUrl:"http://connect.mail.ru/share_count?url_list={url}&callback=1&func=?",convertNumber:function(e){for(var t in e)if(e.hasOwnProperty(t))return e[t].shares},popupUrl:"http://connect.mail.ru/share?share_url={url}&title={title}",pupupWidth:550,popupHeight:360},vkontakte:{counterUrl:"http://vkontakte.ru/share.php?act=count&url={url}&index={index}",counter:function(t,n){var i=r.vkontakte;i._||(i._=[],window.VK||(window.VK={}),window.VK.Share={count:function(e,t){i._[e].resolve(t)}});var s=i._.length;i._.push(n),e.ajax({url:u(t,{index:s}),dataType:"jsonp"})},popupUrl:"http://vk.com/share.php?url={url}&title={title}",pupupWidth:550,popupHeight:330},odnoklassniki:{counterUrl:"http://www.odnoklassniki.ru/dk?st.cmd=extLike&ref={url}&uid={index}",counter:function(t,n){var i=r.odnoklassniki;i._||(i._=[],window.ODKL||(window.ODKL={}),window.ODKL.updateCount=function(e,t){i._[e].resolve(t)});var s=i._.length;i._.push(n),e.ajax({url:u(t,{index:s}),dataType:"jsonp"})},popupUrl:"http://www.odnoklassniki.ru/dk?st.cmd=addShare&st._surl={url}",pupupWidth:550,popupHeight:360},plusone:{popupUrl:"https://plus.google.com/share?url={url}",pupupWidth:700,popupHeight:500},code:{click:function(r){var i=this._codeBalloon;if(i){if(i.is(":visible")){i.fadeOut(n);return}}else i=e(a('
'+'
'+"{prompt}
"+''+"
",{prompt:this.widget.data("prompt")||"Copy code to clipboard:",html:this.options.pageHtml})),this.widget.append(i),this._codeBalloon=i,i.hide();i.fadeIn(n),i.find("textarea").select(),i.is(":visible")&&(i.removeClass(t+"balloon_right"),i.offset().left<0&&i.addClass(t+"balloon_right"),l(i))}},livejournal:{click:function(t){var n=this._livejournalForm;if(!n){var r=this.options.pageHtml.replace(/&/g,"&").replace(/"/g,""");n=e(a('
',{title:this.options.pageTitle,html:r})),this.widget.append(n),this._livejournalForm=n}n.submit()}}},i={promises:{},fetch:function(t,n){i.promises[t]||(i.promises[t]={});var s=i.promises[t];if(s[n])return s[n];var o=r[t],a=e.Deferred(),f=o.counterUrl&&u(o.counterUrl,{url:n});return e.isFunction(o.counter)?o.counter(f,a):o.counterUrl&&e.getJSON(f).done(function(t){try{var n=t;e.isFunction(o.convertNumber)&&(n=o.convertNumber(t)),a.resolve(n)}catch(r){a.reject(r)}}),s[n]=a.promise(),s[n]}};e.fn.socialLikes=function(){return this.each(function(){new s(e(this))})},s.prototype={optionsMap:{pageUrl:{attr:"url",defaultValue:function(){return window.location.href.replace(window.location.hash,"")}},pageTitle:{attr:"title",defaultValue:function(){return document.title}},pageHtml:{attr:"html",defaultValue:function(){return''+this.options.pageTitle+""}},pageCounters:{attr:"counters",defaultValue:"yes",convert:function(e){return e==="yes"}}},init:function(){this.readOptions(),this.single=this.container.hasClass("social-likes_single"),this.initUserButtons(),this.single&&this.container.on("counter.social-likes",e.proxy(this.updateCounter,this));var t=this.options;this.container.find("li").each(function(){new o(e(this),t)}),this.single&&this.makeSingleButton()},readOptions:function(){this.options={};for(var t in this.optionsMap){var n=this.optionsMap[t];this.options[t]=this.container.data(n.attr)||(e.isFunction(n.defaultValue)?e.proxy(n.defaultValue,this)():n.defaultValue),e.isFunction(n.convert)&&(this.options[t]=n.convert(this.options[t]))}},initUserButtons:function(){!this.userButtonInited&&window.socialLikesButtons&&e.extend(r,socialLikesButtons),this.userButtonInited=!0},makeSingleButton:function(){var r=this.container;r.addClass("social-likes_vertical"),r.wrap(e("
",{"class":"social-likes_single-w"}));var i=r.parent(),s=parseInt(r.css("left"),10),o=parseInt(r.css("top"),10);r.hide();var u=e("
",{"class":f("button","single"),text:r.data("single-title")||"Share"});u.prepend(e("",{"class":f("icon","single")})),i.append(u);var a=e("
  • ",{"class":t+"close",html:"×"});r.append(a),this.number=0,u.click(function(){return r.css({left:s,top:o}),c(r,20),l(r),!1}),a.click(function(){r.fadeOut(n)}),this.wrapper=i},updateCounter:function(e,t){if(!t)return;this.number+=t,this.getCounterElem().text(this.number)},getCounterElem:function(){var n=this.wrapper.find("."+t+"counter_single");return n.length||(n=e("",{"class":f("counter","single")}),this.wrapper.append(n)),n}},o.prototype={init:function(){this.detectParams(),this.initHtml(),this.options.pageCounters&&(this.options.counterNumber?this.updateCounter(this.options.counterNumber):i.fetch(this.service,this.options.pageUrl).done(e.proxy(this.updateCounter,this)))},detectService:function(){var t=this.widget[0].classList||this.widget[0].className.split(" ");for(var n=0;n":"",{"class":this.getElementClassNames("button"),text:n.text()});if(r){var o=u(t.clickUrl,{url:t.pageUrl,title:t.pageTitle});s.attr("href",o)}else s.click(e.proxy(this.click,this));s.prepend(e("",{"class":this.getElementClassNames("icon")})),n.empty().append(s),this.button=s},cloneDataAttrs:function(e,t){var n=e.data();for(var r in n)n.hasOwnProperty(r)&&t.data(r,n[r])},getElementClassNames:function(e){return f(e,this.service)},updateCounter:function(t){t=parseInt(t,10);if(!t)return;var n=e("",{"class":this.getElementClassNames("counter"),text:t});this.widget.append(n),this.widget.trigger("counter.social-likes",t)},click:function(t){var n=this.options;if(e.isFunction(n.click))n.click.call(this,t);else{var r=u(n.popupUrl,{url:n.pageUrl,title:n.pageTitle});r=this.addAdditionalParamsToUrl(r),this.openPopup(r,{width:n.pupupWidth,height:n.popupHeight})}return!1},addAdditionalParamsToUrl:function(t){var n=this.options.additionalParams;if(!n)return t;var r={};for(var i=0;it.height&&(r=Math.round(screen.height/3-t.height/2));var i=window.open(e,"sl_"+this.service,"left="+n+",top="+r+","+"width="+t.width+",height="+t.height+",personalbar=0,toolbar=0,scrollbars=1,resizable=1");i?i.focus():location.href=e}},e(function(){e(".social-likes").socialLikes()})}); \ No newline at end of file +/*! Social Likes v2.0.2 by Artem Sapegin - http://sapegin.github.com/social-likes - Licensed MIT */ +(function(e){typeof define=="function"&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){"use strict";function s(e){this.container=e,this.init()}function o(t,n){this.widget=t,this.options=e.extend({},n),this.detectService(),this.service&&this.init()}function u(e,t){for(var n in t)t.hasOwnProperty(n)&&(e=e.replace("{"+n+"}",encodeURIComponent(t[n])));return e}function a(e,t){for(var n in t)t.hasOwnProperty(n)&&(e=e.replace("{"+n+"}",t[n]));return e}function f(e,n){var r=t+e;return r+" "+r+"_"+n}function l(t){var r=e(document),i="click.social-likes"+Math.random();r.on(i,function(s){e(s.target).closest(t).length||(t.fadeOut(n),r.off(i))})}function c(e,t){if(document.documentElement.getBoundingClientRect){var r=parseInt(e.css("left"),10),i=parseInt(e.css("top"),10);e.css("visibility","hidden").show();var s=e[0].getBoundingClientRect();s.leftwindow.innerWidth-t&&e.css("left",window.innerWidth-s.right-t+r),s.topwindow.innerHeight-t&&e.css("top",window.innerHeight-s.bottom-t+i),e.hide().css("visibility","visible")}e.fadeIn(n)}var t="social-likes__",n="fast",r={facebook:{counterUrl:"http://graph.facebook.com/?ids={url}&callback=?",convertNumber:function(e){for(var t in e)if(e.hasOwnProperty(t))return e[t].shares},popupUrl:"http://www.facebook.com/sharer/sharer.php?u={url}",pupupWidth:600,popupHeight:500},twitter:{counterUrl:"http://urls.api.twitter.com/1/urls/count.json?url={url}&callback=?",convertNumber:function(e){return e.count},popupUrl:"http://twitter.com/intent/tweet?url={url}&text={title}",pupupWidth:600,popupHeight:450,additionalParams:["via","related"]},mailru:{counterUrl:"http://connect.mail.ru/share_count?url_list={url}&callback=1&func=?",convertNumber:function(e){for(var t in e)if(e.hasOwnProperty(t))return e[t].shares},popupUrl:"http://connect.mail.ru/share?share_url={url}&title={title}",pupupWidth:550,popupHeight:360},vkontakte:{counterUrl:"http://vkontakte.ru/share.php?act=count&url={url}&index={index}",counter:function(t,n){var i=r.vkontakte;i._||(i._=[],window.VK||(window.VK={}),window.VK.Share={count:function(e,t){i._[e].resolve(t)}});var s=i._.length;i._.push(n),e.ajax({url:u(t,{index:s}),dataType:"jsonp"})},popupUrl:"http://vk.com/share.php?url={url}&title={title}",pupupWidth:550,popupHeight:330},odnoklassniki:{counterUrl:"http://www.odnoklassniki.ru/dk?st.cmd=extLike&ref={url}&uid={index}",counter:function(t,n){var i=r.odnoklassniki;i._||(i._=[],window.ODKL||(window.ODKL={}),window.ODKL.updateCount=function(e,t){i._[e].resolve(t)});var s=i._.length;i._.push(n),e.ajax({url:u(t,{index:s}),dataType:"jsonp"})},popupUrl:"http://www.odnoklassniki.ru/dk?st.cmd=addShare&st._surl={url}",pupupWidth:550,popupHeight:360},plusone:{popupUrl:"https://plus.google.com/share?url={url}",pupupWidth:700,popupHeight:500},code:{click:function(r){var i=this._codeBalloon;if(i){if(i.is(":visible")){i.fadeOut(n);return}}else i=e(a('
    '+'
    '+"{prompt}
    "+''+"
    ",{prompt:this.widget.data("prompt")||"Copy code to clipboard:",html:this.options.pageHtml})),this.widget.append(i),this._codeBalloon=i,i.hide();i.fadeIn(n),i.find("textarea").select(),i.is(":visible")&&(i.removeClass(t+"balloon_right"),i.offset().left<0&&i.addClass(t+"balloon_right"),l(i))}},livejournal:{click:function(t){var n=this._livejournalForm;if(!n){var r=this.options.pageHtml.replace(/&/g,"&").replace(/"/g,""");n=e(a('
    ',{title:this.options.pageTitle,html:r})),this.widget.append(n),this._livejournalForm=n}n.submit()}}},i={promises:{},fetch:function(t,n){i.promises[t]||(i.promises[t]={});var s=i.promises[t];if(s[n])return s[n];var o=r[t],a=e.Deferred(),f=o.counterUrl&&u(o.counterUrl,{url:n});return e.isFunction(o.counter)?o.counter(f,a):o.counterUrl&&e.getJSON(f).done(function(t){try{var n=t;e.isFunction(o.convertNumber)&&(n=o.convertNumber(t)),a.resolve(n)}catch(r){a.reject(r)}}),s[n]=a.promise(),s[n]}};e.fn.socialLikes=function(){return this.each(function(){new s(e(this))})},s.prototype={optionsMap:{pageUrl:{attr:"url",defaultValue:function(){return window.location.href.replace(window.location.hash,"")}},pageTitle:{attr:"title",defaultValue:function(){return document.title}},pageHtml:{attr:"html",defaultValue:function(){return''+this.options.pageTitle+""}},pageCounters:{attr:"counters",defaultValue:"yes",convert:function(e){return e==="yes"}}},init:function(){this.readOptions(),this.single=this.container.hasClass("social-likes_single"),this.initUserButtons(),this.single&&(this.makeSingleButton(),this.container.on("counter.social-likes",e.proxy(this.updateCounter,this)));var t=this.options;this.container.find("li").each(function(){new o(e(this),t)})},readOptions:function(){this.options={};for(var t in this.optionsMap){var n=this.optionsMap[t];this.options[t]=this.container.data(n.attr)||(e.isFunction(n.defaultValue)?e.proxy(n.defaultValue,this)():n.defaultValue),e.isFunction(n.convert)&&(this.options[t]=n.convert(this.options[t]))}},initUserButtons:function(){!this.userButtonInited&&window.socialLikesButtons&&e.extend(r,socialLikesButtons),this.userButtonInited=!0},makeSingleButton:function(){var r=this.container;r.addClass("social-likes_vertical"),r.wrap(e("
    ",{"class":"social-likes_single-w"}));var i=r.parent(),s=parseInt(r.css("left"),10),o=parseInt(r.css("top"),10);r.hide();var u=e("
    ",{"class":f("button","single"),text:r.data("single-title")||"Share"});u.prepend(e("",{"class":f("icon","single")})),i.append(u);var a=e("
  • ",{"class":t+"close",html:"×"});r.append(a),this.number=0,u.click(function(){return r.css({left:s,top:o}),c(r,20),l(r),!1}),a.click(function(){r.fadeOut(n)}),this.wrapper=i},updateCounter:function(e,t){if(!t)return;this.number+=t,this.getCounterElem().text(this.number)},getCounterElem:function(){var n=this.wrapper.find("."+t+"counter_single");return n.length||(n=e("",{"class":f("counter","single")}),this.wrapper.append(n)),n}},o.prototype={init:function(){this.detectParams(),this.initHtml(),this.options.pageCounters&&(this.options.counterNumber?this.updateCounter(this.options.counterNumber):i.fetch(this.service,this.options.pageUrl).done(e.proxy(this.updateCounter,this)))},detectService:function(){var t=this.widget[0].classList||this.widget[0].className.split(" ");for(var n=0;n":"",{"class":this.getElementClassNames("button"),text:n.text()});if(r){var o=u(t.clickUrl,{url:t.pageUrl,title:t.pageTitle});s.attr("href",o)}else s.click(e.proxy(this.click,this));s.prepend(e("",{"class":this.getElementClassNames("icon")})),n.empty().append(s),this.button=s},cloneDataAttrs:function(e,t){var n=e.data();for(var r in n)n.hasOwnProperty(r)&&t.data(r,n[r])},getElementClassNames:function(e){return f(e,this.service)},updateCounter:function(t){t=parseInt(t,10);if(!t)return;var n=e("",{"class":this.getElementClassNames("counter"),text:t});this.widget.append(n),this.widget.trigger("counter.social-likes",t)},click:function(t){var n=this.options;if(e.isFunction(n.click))n.click.call(this,t);else{var r=u(n.popupUrl,{url:n.pageUrl,title:n.pageTitle});r=this.addAdditionalParamsToUrl(r),this.openPopup(r,{width:n.pupupWidth,height:n.popupHeight})}return!1},addAdditionalParamsToUrl:function(t){var n=this.options.additionalParams;if(!n)return t;var r={};for(var i=0;it.height&&(r=Math.round(screen.height/3-t.height/2));var i=window.open(e,"sl_"+this.service,"left="+n+",top="+r+","+"width="+t.width+",height="+t.height+",personalbar=0,toolbar=0,scrollbars=1,resizable=1");i?i.focus():location.href=e}},e(function(){e(".social-likes").socialLikes()})}); \ No newline at end of file diff --git a/src/demo.html b/src/demo.html index 9cc786e..9d0b7d8 100644 --- a/src/demo.html +++ b/src/demo.html @@ -47,7 +47,16 @@
  • LiveJournal
  • Код
  • - +

    Old initialization HTML