移动端弹窗插件的封装和粘贴复制分享功能
2018-03-26 本文已影响77人
幸宇
; (function (global, undefined) {
"use strict" //使用js严格模式检查,使语法更规范
var _global;
var pop = {
create: function (w, d) {
var divstr=`
<div class="pop popclose">
<div class="pop-box botp">
<h3 class="pop-title">注册成功</h3>
<div class="pop-content">
<p class="pop-text1">注册完成就去分享吧~</p>
<p class="pop-text2">静候佳音之时,可以和好友分享这一刻~</p>
<p class="pop-text3">让更多亲友来体验超值课程</p>
<div class="col-xs-12 pop-share">
<div class="col-xs-6">
<img class="img1" src="images/qq.png">
</div>
<div class="col-xs-6">
<img class="img2" src="images/wx.png" alt="">
</div>
</div>
<div class="col-xs-12 bt">
<div class="col-xs-6 qq_out">
<button class="qq" data-clipboard-text="小学600元课程0元秒杀活动-北京新东方学校http://test.bj.xdf.cn/bj_static/setykm/">去QQ粘贴</button>
</div>
<div class="col-xs-6">
<button class="wx" data-clipboard-text="小学600元课程0元秒杀活动-北京新东方学校http://test.bj.xdf.cn/bj_static/setykm/">去微信粘贴</button>
</div>
</div>
</div>
<span class="pop-zs">
<img src="http://bj.xdf.cn/bj_static/wiki/zc/images/popzs.png" alt="">
</span>
<span class="pop-close">
<img src="http://bj.xdf.cn/bj_static/wiki/zc/images/popclose.png" alt="">
</span>
</div>
<div class="pop-box botm">
<h3 class="pop-title">完成</h3>
<div class="pop-content">
<p class="text">内容已复制好了 </p>
<p class="text">快去粘贴吧~</p>
<p class="p-cont"></p>
<div class="col-xs-12 bt">
<button class="wx" data-clipboard-text="小学600元课程0元秒杀活动-北京新东方学校http://test.bj.xdf.cn/bj_static/setykm/">好的</button>
</div>
</div>
<span class="pop-zs">
<img src="http://bj.xdf.cn/bj_static/wiki/zc/images/popzs.png" alt="">
</span>
<span class="pop-close">
<img src="http://bj.xdf.cn/bj_static/wiki/zc/images/popclose.png" alt="">
</span>
</div>
</div>
`
var cssstr=`
.popshow {
display: block
}
.popclose {
display: none
}
.pop {
z-index: 1000;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
overflow: hidden;
background: rgba(0, 0, 0, .3)
}
.pop-box {
position: absolute;
top: 0px;
right: 0;
bottom: 0;
left: 0;
width: 85%;
min-width: 240px;
max-width: 480px;
margin: auto;
height: 294px;
text-align: center;
background: #fff;
border-radius: 20px;
}
.pop-title {
margin: 0;
padding: 15px 0;
border-top-left-radius: 20px;
border-top-right-radius: 20px;
font-weight: bold;
font-size: 22px;
background: #f7e133;
}
.pop-text {
margin: 0;
padding: 30px 10px;
}
.pop-zs {
position: absolute;
left: 15px;
top: -16px;
}
.pop-close {
position: absolute;
right: 15px;
top: 15px;
}
.pop-zs img {
max-width: 65px;
}
.pop-close img {
max-width: 30px;
}
.pop-content button {
padding: 10px 50px;
border-radius: 20px;
border: 0;
}
.botm {
position:fixed;
bottom:0;
top:0px;
left:0;
right:0;
}
.pop-content{padding-top:17px;}
.pop-content p{text-align: left;padding-left: 20px;margin-bottom:0px;margin-top:7px;margin-bottom:5px;word-wrap: break-word; word-break: normal; }
.pop-content p.pop-text1{color:#feb518;font-size:18px;}
.pop-share img{width:63px}
.pop-share{border-bottom: 1px solid #e5e5e5;}
.pop-content button{padding: 15px;}
.qq_out{border-right:1px solid #e5e5e5;}
.qq,.wx{display: inline-block;background: none;padding:0px;font-size:16px;outline:none}
.qq{border-right: 1px solid #e5e5e5;}
.pop .botm .text{margin:0px;padding:10x 5px;font-size:16px;text-align:center}
.botm .pop-box{height:195px;}
.botm .bt{border-top:1px solid #e5e5e5;color:#feb518;margin-top:46px;}
.botp{z-index:99;}
.botm{z-index:10000;height:249px}
.botm .pop-content{padding-top:49px;}
.botm .p-cont{padding-left:0px;padding-left:10px;padding-right:10px;}
`
d.write(divstr);
function addpopstyle(newStyle) {
var styleElement = d.getElementById('xdfpopstyles');
if (!styleElement) {
styleElement = d.createElement('style');
styleElement.type = 'text/css';
styleElement.id = 'xdfpopstyles';
d.getElementsByTagName('head')[0].appendChild(styleElement);
}
styleElement.appendChild(d.createTextNode(newStyle));
}
addpopstyle(cssstr);
}(window, document),
open: function (setting) {
var defaultsetting = {
title:"注册成功",
content:["注册完成就去分享吧~","静候佳音之时,可以和好友分享这一刻~","让更多亲友来体验超值课程"],
img:["images/qq.png","images/wx.png"],
button:["去QQ粘贴","去微信粘贴"],
share:function(){
document.querySelector('.pop').classList.remove("popclose");
document.querySelector('.botm').classList.add("popclose");
var clipboard = new Clipboard('.wx');
var clipstr=document.title+window.location.href;
// alert(clipstr)
document.querySelector(".pop .pop-close").addEventListener("click", function () {
document.querySelector('.pop').classList.add("popclose");
});
$('.bt button,.pop-share').click(function(){
document.querySelector('.botm').classList.remove("popclose");
document.querySelector('.botp').classList.add("popclose");
// $("[data-clipboard-text]").each(function () {
// console.log($(this).attr("data-clipboard-text"));
// });
// $(".wx").each(function () {
// $(this).attr("data-clipboard-text",clipstr);
// });
// clipboard.on('error', function(e) {
// document.querySelector('.p-cont').innerHTML='手机版本不支持,请手动选择“拷贝”进行复制!'+'【'+document.title+window.location.href+'】';
// $('.text').css('display','none');
// $('.botm').css('height','226px')
// });
clipboard.on('error', function(e) {
document.querySelector('.p-cont').innerHTML='手机版本不支持,请手动选择“拷贝”进行复制!'+'【'+'小学600元课程0元秒杀活动-北京新东方学校http://test.bj.xdf.cn/bj_static/setykm/'+'】';
$('.text').css('display','none');
$('.botm').css('height','226px')
});
})
document.querySelector(".botm .bt").addEventListener("click",function(){
document.querySelector('.pop').classList.add("popclose");
})
document.querySelector(".botm .pop-close").addEventListener("click",function(){
document.querySelector('.pop').classList.add("popclose");
document.querySelector('.botp').classList.remove("popclose");
})
}
}
$.extend(defaultsetting, setting);
defaultsetting.share();
document.querySelector('.pop-title').innerHTML=defaultsetting.title;
document.querySelector('.pop-text1').innerHTML=defaultsetting.content[0];
document.querySelector('.pop-text2').innerHTML=defaultsetting.content[1];
document.querySelector('.pop-text3').innerHTML=defaultsetting.content[2];
document.querySelector('.img1').src=defaultsetting.img[0];
document.querySelector('.img2').src=defaultsetting.img[1];
document.querySelector('.qq').innerHTML=defaultsetting.button[0];
document.querySelector('.wx').innerHTML=defaultsetting.button[1];
},
close: function () {
document.querySelector('.pop').classList.add("popclose");
}
}
// 最后将插件对象暴露给全局对象
_global = (function () { return this || (0, eval)('this'); }());
!('pop' in _global) && (_global.pop = pop);
}());
调取
<script src="http://bj.xdf.cn/bj_static/wiki/zc/js/xdfpop.js"></script>
<script src="js/clipboard.min.js"></script>
<script src="js/pop1.js"></script>
<script type="text/javascript">
var formId = "52822e6d-4e88-4192-8e12-f078c487294b";
function submit_data() {
if ($('#name').val() == "") {
$('#name').focus();
// alert("姓名不能为空");
xdfpop.open({
title: "温馨提示",
content: "姓名不能为空哦~",
button: "知道了"
});
return false;
}
// if ($('#name').val() == "") {
// $('#name').focus();
// // alert("姓名不能为空");
// pop.open({
// title:"注册成功",
// content:["您已注册成功,稍后我们会联系您","静候佳音之时,您可以将此优惠分享给他人,","让更多亲友来体验超值课程"],
// img:["images/qq.png","images/wx.png"],
// button:["去QQ粘贴","去微信粘贴"],
// });
// return false;
// }
if ($('#tel').val() == "") {
$('#tel').focus();
// alert("手机不能为空");
xdfpop.open({
title: "温馨提示",
content: "手机号码不能为空哦~",
button: "知道了"
});
return false;
}
if ($('#verificationCode').val() == "") {
$('#verificationCode').focus();
// alert("请输入验证码");
xdfpop.open({
title: "温馨提示",
content: "请输入验证码吧~",
button: "知道了"
});
return false;
}
var inputName = new Array();
inputName[0] = "name";
inputName[1] = "tel";
inputName[2] = "grade";
var verificationCode = $("#verificationCode").val();
var telephone = $('#tel').val();
window.checkResultCallback = function (jsonObject) {
console.log('>>>>>', jsonObject.result,jsonObject.status);
if (jsonObject != null) {
//json.result验证是否成功,ok为短信验证成功,error为验证失败
if (jsonObject.result == "ok") {
//短信验证提示
if (jsonObject.status == "1") { //数据是否保存成功
//数据保存成功,提示或其他动作
// alert("注册成功!我们会尽快与您取得联系!");
// xdfpop.open({
// title: "完成",
// content: "注册成功!我们会尽快与您取得联系~",
// button: "知道了"
// });
pop.open({
title:"注册成功",
content:["您已注册成功,稍后我们会联系您","静候佳音之时,您可以将此优惠分享给他人,","让更多亲友来体验超值课程"],
img:["images/qq.png","images/wx.png"],
button:["去QQ粘贴","去微信粘贴"],
});
} else if (jsonObject.status == "501") {
// alert("此手机号已注册");
xdfpop.open({
title: "温馨提示",
content: "这个手机号码已经被注册过了~",
button: "知道了"
});
//刷新页面或其他行为
$('#tel').val('');
$('#verificationCode').val('');
} else if (jsonObject.status == "-1") {
// alert("配置文件不存在!");
xdfpop.open({
title: "温馨提示",
content: "配置文件不存在~",
button: "知道了"
});
} else {
// alert("系统错误,请刷新页面!");
xdfpop.open({
title: "温馨提示",
content: "系统错误,请刷新页面吧~",
button: "知道了"
});
//直接都刷新
window.location.reload;
}
} else if (jsonObject.result == "error") {
if (jsonObject.code == 403) {
// alert("验证码错误!");
xdfpop.open({
title: "温馨提示",
content: "验证码错误~",
button: "知道了"
});
//清空验证码输入框,或其他操作
$('#verificationCode').val('');
} else if (jsonObject.code == 402) {
// alert("验证码已过期,请重新获取验证码!");
xdfpop.open({
title: "温馨提示",
content: "验证码已过期,请重新获取验证码~",
button: "知道了"
});
//此处重置获取验证码按钮,或者刷新页面
window.location.reload;
} else if (jsonObject.code == 401) {
// alert("验证码错误次数过多,请重新获取验证码!");
xdfpop.open({
title: "温馨提示",
content: "验证码错误次数过多,请重新获取验证码~",
button: "知道了"
});
//此处重置获取验证码按钮
$('#verificationCode').val('');
} else if (jsonObject.code == 405) {
// alert("数据已保存成功!");
xdfpop.open({
title: "温馨提示",
content: "您已提交成功,请耐心等待~",
button: "知道了"
});
//此处重置获取验证码按钮
$('#verificationCode').val('');
} else {
// alert("系统错误,请刷新页面!");
xdfpop.open({
title: "温馨提示",
content: "系统错误,请刷新页面~",
button: "知道了"
});
//刷新页面
window.location.reload;
}
}
}
}
vaildNoteCode_submitData(inputName, formId, "少儿体验课", telephone, verificationCode);
// vaildNoteCode_submitData(inputName, "99029651-45f1-4a89-9f2e-56296cee2eb3", "市场部线下大活动", telephone, verificationCode);
}
var sends = {
checked: 1,
send: function () {
var numbers = /^1\d{10}$/;
var val = $('#tel').val().replace(/\s+/g, ""); //获取输入手机号码
if ($('.div-phone').find('span').length == 0 && $('.identity button').attr('class') == 'send1') {
if (!numbers.test(val) || val.length == 0) {
$('.div-phone').append('<span class="error">请输入正确手机号!</span>');
return false;
}
}
if (numbers.test(val)) {
// $(".send1").prop("disabled", true);
var onclickStr = $("#sendBtn").attr('onclick');
$('#sendBtn').attr('onclick', 'return false;' + onclickStr);
var time = 60;
$('.div-phone span').remove();
function timeCountDown() {
if (time == 0) {
// $(".send1").prop("disabled", false);
var onclickStr = $("#sendBtn").attr('onclick');
$('#sendBtn').attr('onclick', onclickStr.split(';')[1]);
clearInterval(timer);
$('.identity button').addClass('send1').removeClass('send0').html("获取验证码");
sends.checked = 1;
return true;
}
$('.identity button').html(time + "S后重发");
time--;
return false;
}
$('.identity button').addClass('send0').removeClass('send1');
timeCountDown();
var timer = setInterval(timeCountDown, 1000);
window.checkTelephoneExist = function (jsonObject) {
console.log('>>>>>', jsonObject.status);
if (jsonObject != null) {
var status = jsonObject.status;
if (status == -1 || status == 501) {
// alert("电话号码本页面已注册!");
xdfpop.open({
title: "温馨提示",
content: "电话号码本页面已注册~",
button: "知道了"
});
} else if (status == 1) {
//电话号码不存在,并下发短信成功
globalMsgId = jsonObject.msgId;
} else {
console.log("页面异常!" + status);
//刷新页面
window.location.reload;
}
}
}
getNoteCode(val, formId);
}
}
}
</script>
<script>
$(document).ready(function () {
$.ajax({
type: 'get',
async: false,
url: 'http://bjmx.xdf.cn/clue/form/getCountByFormId',
//url : 'http://clue.bj.staff.xdf.cn/clue/form/getCountByFormId',
dataType: 'jsonp',
data: {
formId: '52822e6d-4e88-4192-8e12-f078c487294b'
},
jsonp: 'callbackparam',
jsonpCallback: 'success_jsonpCallback',
success: function (json) {
// var randnum = 0;
// randnum = json.count;
// var newrandnum=randnum-100;
var len = json.count;
var len = len.toString();
var sub=len.substring(len.length,len.length-2);
var randnum = parseInt(sub) ;
// console.log(newrandnum)
if (randnum >= 100) {
// randnum = newrandnum;
// newrandnum=100;
var rn = ('' + randnum);
$(".getnum .nownum").text(rn);
// $("#register .res").css("display","none");
// var path="images/registerover.png";
// var demo=$("#register img").attr("src",path);
} else {
var rn = ('' + randnum);
$(".getnum .nownum").text(rn);
}
},
complete: function (XMLHttpRequest, textStatus) {
// alert(XMLResponse.responseText+XMLHttpRequest.status);
},
error: function (json, XMLResponse) {
//alert(XMLResponse.responseText+XMLHttpRequest.status);
result = "返回信息:" + json.message + "错误码:" + XMLHttpRequest.status;
}
});
$(".mod-1 .register .select select").change(function(){
$(this).css("color","#555");
});
});
function activehover(btn, content) {
$(btn).mouseenter(function () {
$(this).addClass("active").siblings().removeClass("active");
$(content).hide().eq($(this).index()).show();
})
}
activehover(".classbord .classtabs li", ".classbord .classcontents li");
</script>