作者:狐灵科技 | 2020-04-29 18:21 |点击:
一键分享功能是网站社交化的一个重要组件,当前发现一款使用非常简单的js插件,就是share.js,项目地址: https://github.com/overtrue/share.js 。 share.js使用非常简单,它可以通过参数配置自由控制展示哪些分享图标,同时它还可以自定义分享时的title以及icon。
如此简单的一个js组件,对于我这样的一个后端开发人员,那也是分分钟上手,用法这里不细说, 请参考作者github。现在结合share.js,给自己的静态博客实现一键分享功能,同时给自己的博客实现通过参数控制分享图标的显示位置。
要使用share.js功能,首先要把share.js的css文件、js文件都引入到html中。本博客是利用Hugo生成的,从share.js项目的src目录,直接将子目录css、font、js文件夹 复制到博客项目的static目录中,然后将js、css文件引入主模板baseof.html中即可,js文件只需要qrcode.js以及social-share.js文件即可。
使用方法
HTML代码
<div class="inner-meta clearfix social-share"></div>
自定义配置
所有配置可选, 通常默认就满足需求:
可用的配置有:
url : '', // 网址,默认使用 window.location.href
source : '', // 来源(QQ空间会用到), 默认读取head标签:<meta name="site" content="http://overtrue" />
title : '', // 标题,默认读取 document.title 或者 <meta name="title" content="share.js" />
description : '', // 描述, 默认读取head标签:<meta name="description" content="PHP弱类型的实现原理分析" />
image : '', // 图片, 默认取网页中第一个img标签
sites : ['qzone', 'qq', 'weibo','wechat', 'douban'], // 启用的站点
disabled : ['google', 'facebook', 'twitter'], // 禁用的站点
wechatQrcodeTitle : '微信扫一扫:分享', // 微信二维码提示文字
wechatQrcodeHelper : '<p>微信里点“发现”,扫一下</p><p>二维码便可将本文分享至朋友圈。</p>'
以上选项均可通过标签 data-xxx
来设置:
驼峰转为中横线,如wechatQrcodeHelper
的data标签为data-wechat-qrcode-helper
禁用 google、twitter、facebook 并设置分享的描述
<div class="share-component" data-disabled="google,twitter,facebook" data-description="Share.js - 一键分享到微博,QQ空间,腾讯微博,人人,豆瓣"></div>
设置微信二维码标题
<div class="social-share" data-wechat-qrcode-title="请打开微信扫一扫"></div>
针对特定站点使用不同的属性(title, url, description,image...)
<div class="social-share" data-weibo-title="这个标题只有的分享到微博时有用,其它标题为全局标题" data-qq-title="分享到QQ时用此标题"></div>
你也可以自定义图标
使用: data-initialized="true"
标签或者 initialized
配置项来禁用自动生成icon功能。
以上a标题会自动加上分享链接(a
标签必须带 icon-NAME
属性,不然分享链接不会自动加上)。
如果你想在分享icon列表中内置一些元素,比如放一个收藏按钮在分享按钮的后面:
这样并没有实现,因为结果是所有的分享按钮都创建在了收藏按钮的后面了,这时候你就可以用 data-mode="prepend"
来确定分享按钮创建的方式。
这样,所有的分享图标就会创建在容器的内容前面,反之可以用 append
创建在容器内容后面,当然这是默认的,也不需要这么做。
指定移动设备上显示的图标
<div class="share-component" data-mobile-sites="weibo,qq,qzone,tencent"></div>
当在手机上打开该页面的时候就只会显示这4个图标了。