zoukankan      html  css  js  c++  java
  • CSS3分享功能

     [代码][CSS]代码  
    $.fn.share = function(opts) {
      var $body, $head;
      if ($(this).length === 0) {
        console.log("Share Button: No elements found.");
        return;
      }
      $head = $('head');
      $body = $('body');
      return $(this).each(function(i, el) {
        var $sharer, bubble, bubbles, click_link, close, config, open, parent, paths, protocol, set_opt, toggle,
          _this = this;
        $sharer = $(this);
        $sharer.addClass("sharer-" + i);
        $sharer.hide();
        if (opts == null) {
          opts = {};
        }
        config = {};
        config.url = opts.url || window.location.href;
        config.text = opts.text || $('meta[name=description]').attr('content') || '';
        config.app_id = opts.app_id;
        config.title = opts.title;
        config.image = opts.image;
        config.flyout = opts.flyout || 'top center';
        config.button_color = opts.color || '#333';
        config.button_background = opts.background || '#e1e1e1';
        config.button_icon = opts.icon || 'export';
        config.button_text = typeof opts.button_text === 'string' ? opts.button_text : 'Share';
        set_opt = function(base, ext) {
          if (opts[base]) {
            return opts[base][ext] || config[ext];
          } else {
            return config[ext];
          }
        };
        config.twitter_url = set_opt('twitter', 'url');
        config.twitter_text = set_opt('twitter', 'text');
        config.fb_url = set_opt('facebook', 'url');
        config.fb_title = set_opt('facebook', 'title');
        config.fb_caption = set_opt('facebook', 'caption');
        config.fb_text = set_opt('facebook', 'text');
        config.fb_image = set_opt('facebook', 'image');
        config.gplus_url = set_opt('gplus', 'url');
        config.selector = "." + ($sharer.attr('class').split(" ").join("."));
        config.twitter_text = encodeURIComponent(config.twitter_text);
        if (typeof config.app_id === 'integer') {
          config.app_id = config.app_id.toString();
        }
        if (!$('link[href="http://weloveiconfonts.com/api/?family=entypo"]').length) {
          $("<link />").attr({
            rel: "stylesheet",
            href: "http://weloveiconfonts.com/api/?family=entypo"
          }).appendTo($("head"));
        }
        if (!$('link[href="http://fonts.googleapis.com/css?family=Lato:900"]').length) {
          $("<link />").attr({
            rel: "stylesheet",
            href: "http://fonts.googleapis.com/css?family=Lato:900"
          }).appendTo($("head"));
        }http://www.huiyi8.com/yanjiangzhici/
        if (!$("meta[name='sharer" + config.selector + "']").length) {
          $('head').append(getStyles(config)).append("<meta name='sharer" + config.selector + "'>");
        }演讲致辞
        $(this).html("<label class='entypo-" + config.button_icon + "'><span>" + config.button_text + "</span></label><div class='social " + config.flyout + "'><ul><li class='entypo-twitter' data-network='twitter'></li><li class='entypo-facebook' data-network='facebook'></li><li class='entypo-gplus' data-network='gplus'></li></ul></div>");
        if (!window.FB && config.app_id && ($('#fb-root').length === 0)) {
          protocol = ['http', 'https'].indexOf(window.location.href.split(':')[0]) === -1 ? 'https://' : '//';
          $body.append("<div id='fb-root'></div><script>(function(a,b,c){var d,e=a.getElementsByTagName(b)[0];a.getElementById(c)||(d=a.createElement(b),d.id=c,d.src='" + protocol + "connect.facebook.net/en_US/all.js#xfbml=1&appId=" + config.app_id + "',e.parentNode.insertBefore(d,e))})(document,'script','facebook-jssdk');</script>");
        }
        paths = {
          twitter: "http://twitter.com/intent/tweet?text=" + config.twitter_text + "&url=" + config.twitter_url,
          facebook: "https://www.facebook.com/sharer/sharer.php?u=" + config.fb_url,
          gplus: "https://plus.google.com/share?url=" + config.gplus_url
        };
        parent = $sharer.parent();
        bubbles = parent.find(".social");
        bubble = parent.find("" + config.selector + " .social");
        toggle = function(e) {
          e.stopPropagation();
          return bubble.toggleClass('active');
        };
        open = function() {
          return bubble.addClass('active');
        };
        close = function() {
          return bubble.removeClass('active');
        };
        click_link = function() {
          var link, popup;
          link = paths[$(this).data('network')];
          if (($(this).data('network') === 'facebook') && config.app_id) {
            if (!window.FB) {
              console.log("The Facebook JS SDK hasn't loaded yet.");
              return;
            }
            window.FB.ui({
              method: 'feed',
              name: config.fb_title,
              link: config.fb_url,
              picture: config.fb_image,
              caption: config.fb_caption,
              description: config.fb_text
            });
          } else {
            popup = {
              500,
              height: 350
            };
            popup.top = (screen.height / 2) - (popup.height / 2);
            popup.left = (screen.width / 2) - (popup.width / 2);
            window.open(link, 'targetWindow', "toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,left=" + popup.left + ",top=" + popup.top + ",width=" + popup.width + ",height=" + popup.height);
          }
          return false;
        };
        $sharer.find('label').on('click', toggle);
        $sharer.find('li').on('click', click_link);
        $body.on('click', function() {
          return bubbles.removeClass('active');
        });
        setTimeout((function() {
          return $sharer.show();
        }), 250);
        return {
          toggle: toggle.bind(this),
          open: open.bind(this),
          close: close.bind(this),
          options: config,
          self: this
        };
      });
    };
    }.call(this)

  • 相关阅读:
    注册DLL的两种方法
    DVDRAM 格式化失败及视频文件分割软件
    提高ASP.NET效率的几个方面
    vs2003错误求救
    存储过程1
    制作VCD/DVD方法
    不能上网修复网络协议
    C语言运算符优先级
    黑马程序员 ObjectC 类 (一)
    进制转换的方法和技巧
  • 原文地址:https://www.cnblogs.com/xkzy/p/3977650.html
Copyright © 2011-2022 走看看