m-share
Version:
h5页面分享组件、支持分享到微信、朋友圈、qq、QQ空间、QQ好友。
114 lines (112 loc) • 3.46 kB
JavaScript
/*
* @Author: backtonature
* @Date: 2018-05-27 20:08:19
* @Last Modified by: backtonature
* @Last Modified time: 2018-05-30 21:05:38
*/
import util from './util.js';
import style from './style.js';
let isStyleLoaded = false;
export default {
initStyle() {
if (!isStyleLoaded) {
util.execStyle(style.cssText);
isStyleLoaded = true;
}
},
showActionSheet(dom) {
this.showMask();
const $sheet = document.createElement('div');
$sheet.id = 'm-share-actionSheet';
$sheet.appendChild(dom);
document.body.appendChild($sheet);
window.setTimeout(() => {
$sheet.style.cssText = '-webkit-transform: translateY(0);transform: translateY(0);';
}, 0);
},
hideActionSheet() {
const dom = document.querySelector('#m-share-actionSheet');
if (dom) {
// 渐变消失
// dom.addEventListener('webkitTransitionend', () => {
// dom.remove();
// });
// dom.addEventListener('transitionend', () => {
// dom.remove();
// });
// dom.style.cssText = '-webkit-transform: translateY(100%);transform: translateY(100%);';
dom.remove();
}
},
showMask() {
if (document.querySelector('.m-share-mask')) {
return;
}
const $div = document.createElement('div');
$div.className = 'm-share-mask';
$div.addEventListener('click', () => {
this.hideActionSheet();
this.hideBottomTips();
this.hideRightTips();
this.hideMask();
});
document.body.appendChild($div);
window.setTimeout(() => {
$div.style.opacity = 0.7;
}, 0);
},
hideMask() {
const domList = document.querySelectorAll('.m-share-mask');
for (let i = 0; i < domList.length; i++) {
const item = domList[i];
const removeDom = () => item.remove();
// 渐变消失
// item.addEventListener('webkitTransitionend', removeDom);
// item.addEventListener('transitionend', removeDom);
// item.style.cssText = 'opacity: 0';
removeDom();
}
},
showBottomTips() {
this.showMask();
const $tips = document.createElement('div');
$tips.className = 'm-share-tips-bottom';
$tips.innerHTML = '请打开浏览器的菜单进行分享点击“<i class="m-share-iconfont m-share-iconfont-menu"></i>”或“<i class="m-share-iconfont m-share-iconfont-share"></i>”';
document.body.appendChild($tips);
window.setTimeout(() => {
this.hideMask();
this.hideBottomTips();
}, 1400);
},
hideBottomTips() {
const domList = document.querySelectorAll('.m-share-tips-bottom');
for (let i = 0; i < domList.length; i++) {
const item = domList[i];
item.remove();
}
},
showRightTopTips() {
this.showMask();
const $tips = document.createElement('div');
$tips.className = 'm-share-tips';
$tips.innerHTML = `
<div class="m-share-tips-w">
<div class="m-share-tips-p">点击右上角“<i class="m-share-iconfont m-share-iconfont-dots"></i>”</div>
<div class="m-share-tips-p">分享给朋友吧!</div>
</div>
<div class="m-share-tips-arrow"></div>
`;
document.body.appendChild($tips);
window.setTimeout(() => {
this.hideMask();
this.hideRightTips();
}, 1400);
},
hideRightTips() {
const domList = document.querySelectorAll('.m-share-tips');
for (let i = 0; i < domList.length; i++) {
const item = domList[i];
item.remove();
}
}
};