分享
 
 
 

【原创】贡献一个JS的弹出框代码...

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: |||超大  

一.前言最近在做一个项目,自己感觉系统自带的alert()方法的弹出框实在是不堪入目,所以在网上找了一些资料,然后自己加工了一下,做出了自己的一个js弹出框,在这里贡献出来,希望对你有帮助.

二.开始在这里我们来一个获取验证码的页面来说明,也是在我项目用用到的一个页面。我们首先创建一个HTML的静态页面。其中代码如下:

<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type"content="text/html; charset=gb2312">

<title>自定义提示</title>

<script src="jquery-1.8.3.js"type="text/javascript"></script>

<script src="sAlter.js"type="text/Javascript"></script>

<link href="GetRelationByPhone.CSS"rel="stylesheet"type="text/css"/>

</head>

<body>

<div>

<form id="form1"action="#"method="post">

<div>

<sectionclass="infos">

<labelclass="fLeft">手机号</label>

<input type="hidden"value="oLlIXuNocl66hPYHHt8vwAOLhWTA"name="openid"/>

<spanclass="commeInput"><input type="text"class="no-border"name="phone"id="phone"value=""placeholder="请输入您的手机号"/>

</span>

<em id="mob"class="yg-input-close rt12"></em></section>

<sectionclass="infos no-boder">

<labelclass="fLeft">验证码</label>

<spanclass="commeInput"><input type="text"class="no-border2"name="code"id="code"value=""placeholder="请输入验证码"/>

<input type="button"id="btn"class="btn_mfyzm"value="获取验证码"onclick="getverify()"/>

</span>

<em id="mob2"class="yg-input-close lt50"></em></section>

<div><button type="button"class="btn-pay"onclick="go()"title="确定">确&nbsp &nbsp 定</button></div>

</div>

</form>

</div>

</body>

</html>

sAlter.js就是我们封装过后的js。我们先看看使用的效果:

来看看我们的页面js代码如下:

<script type="text/javascript">function timer(time) {varbtn = $("#btn");

btn.attr("disabled",true);//按钮禁止点击btn.val(time <=0?"发送验证码": (""+ (time) +"秒"));varhander =setInterval(function () {if(time <=0) {

clearInterval(hander);//清除倒计时btn.val("发送验证码");

btn.attr("disabled",false);returnfalse;

}else{

btn.val(""+ (time--) +"秒");

}

},1000);

}//绑定手机号码function go() {varphone = $("#phone").val();if(phone ==""|| phone =="请输入11位手机号码"|| phone ==null) {NewAlertBox("warning","请输入11位手机号码",3000);return;

}varmyreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;if(!myreg.test($("#phone").val())) {

NewAlertBox("warning","请输入有效的手机号码!",3000);

$("#phone").val("");return;

}varcode = $("#code").val();if(code ==""|| code =="请输入验证码"|| code ==null) {

NewAlertBox("warning","请输入验证码!",3000);return;

}//$.Ajax({//url: "RelationCarNoByPhone.ashx?type=2&code=" + code + "&phone=" + phone,//type: "POST",//dataType: "json",//cache: false,//success: function (data) {//if (data.code == "0") {NewAlertBox("warning","绑定成功!",3000, function () { WeixinJSBridge.call('closeWindow'); });//}//else {//NewAlertBox("warning", data.msg, 3000, function () { WeixinJSBridge.call('closeWindow'); });//}//}//});}//获取验证码function getverify() {varphone = $("#phone").val();if(phone ==""|| phone =="请输入11位手机号码"|| phone ==null) {

NewAlertBox("warning","请输入11位手机号码",3000);return;

}varmyreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;if(!myreg.test($("#phone").val())) {

NewAlertBox("warning","请输入有效的手机号码!",3000);

$("#phone").val("");return;

}

timer(120);//$.ajax({//url: "RelationCarNoByPhone.ashx?type=1&phone=" + phone,//type: "POST",//dataType: "json",//cache: false,//success: function (data) {//if (data.code == "0") {NewAlertBox("ok","验证码获取成功!",3000);//} else {//NewAlertBox("warning", data.msg, 3000);//}//}//});}</script>

从上面的代码中我们看到这个封装的js使用起来非常简单 NewAlertBox("warning", "请输入11位手机号码", 3000);传入一些参数就可以达到我们要的效果。

三.核心代码我们要的效果也达到了,sAlter.js这个里面究竟是个什么样子的,其中代码如下:

/*js弹窗代码:用户体验极佳的Alert提示效果

e-mail:616931@QQ.com

source:枫伶亿博客*/vart;varargl,funcf;//获取指定ID的元素function $xp(id) {returndocument.getElementById(id);

}//通用事件获取接口function getEvent()

{if(CheckBrowser()=='IE')returnwindow.event;

func=getEvent.caller;while(func!=null)

{vararg0 = func.arguments[0];if(arg0)

{if((arg0.constructor==Event || arg0.constructor ==MouseEvent)|| (typeof(arg0)=="object"&& arg0.PReventDefault &&arg0.stopPropagation))

{returnarg0;

}

}

func=func.caller;

}returnnull;

}//alertfunction NewAlertBox(itype,msg,time){//time为消失时间varmsgbg,msgcolor,bordercolor,content,posLeft,posTop,imgName;

argl=arguments.length;if(argl>3)

{funcf= arguments[3];}//外部方法//弹出窗口设置msgbg ="#FFF";//内容背景msgcolor ="#f66f15";//内容颜色bordercolor ="#d8bfd8";//边框颜色//遮罩背景设置//判断图片类型if(itype.toUpperCase()=='OK')//提示通过imgName ='../Img/ts_ok.png';elseif(itype.toUpperCase()=='ERROR')//提示报错imgName ='../Img/ts_error.png';else//提示警告或者其他imgName ='../Img/ts_warning.png';

content="<img src='"+ imgName +"' alt='img ' style='width:78px;height:78px;'/><br/>"+msg;varsWidth,sHeight;if(document.documentElement && document.documentElement.clientHeight &&document.documentElement.clientWidth)

{

sWidth=document.documentElement.clientWidth;

sHeight=document.documentElement.clientHeight;

}else{

sWidth= screen.availWidth -20;//防止溢出if(screen.availHeight >document.body.scrollHeight){

sHeight= screen.availHeight;//少于一屏}else{

sHeight= document.body.scrollHeight;//多于一屏}

}//创建遮罩背景varmaskObj = document.createElement("div");

maskObj.setAttribute('id','maskdiv');//maskObj.setAttribute('onclick','CloseMsg()');maskObj.style.position ="absolute";

maskObj.style.top="0";

maskObj.style.left="0";

maskObj.style.background="#fff";

maskObj.style.filter="Alpha(opacity=40);";

maskObj.style.opacity="0.4";

maskObj.style.width= sWidth +"px";

maskObj.style.height= sHeight +"px";

maskObj.style.zIndex="10000";

document.body.appendChild(maskObj);//创建弹出窗口varmsgObj = document.createElement("div")

msgObj.setAttribute("id","msgdiv");

msgObj.setAttribute("onClick","CloseMsg()");

msgObj.style.position="absolute";

sWidth=230;

sHeight=180;

msgObj.style.width= sWidth +"px";//msgObj.style.height = sHeight + "px";varevent= getEvent();//申明eventif(CheckBrowser()=='IE')

{//posLeft = event.clientX + 10;//posTop = event.clientY + document.documentElement.scrollTop;posLeft = (document.documentElement.clientWidth - sWidth) /2+"px";

posTop=50+ document.documentElement.scrollTop +"px";//posTop = (document.documentElement.clientHeight- sHeight) / 2 + "px";}else{//posLeft = event.pageX + 10 + "px";//ff下要申明px//posTop = event.pageY + 10 + "px";posLeft = (document.documentElement.clientWidth - sWidth) /2+"px";

posTop=50+ document.documentElement.scrollTop +"px";//posTop = (document.documentElement.clientHeight- sHeight) / 2 + "px";}

msgObj.style.top=posTop;

msgObj.style.left=posLeft;

msgObj.style.fontSize="18px";

msgObj.style.background=msgbg;

msgObj.style.border="1px solid"+bordercolor;

msgObj.style.zIndex="10001";//创建内容varbodyObj = document.createElement("div");

bodyObj.setAttribute("id","msgbody");

bodyObj.style.padding="10px";

bodyObj.style.lineHeight="1.5em";

bodyObj.style.color=msgcolor;

bodyObj.style.textAlign="center";//var txt = document.createTextNode(content);//bodyObj.appendChild(txt);bodyObj.innerHTML =content;//生成窗口document.body.appendChild(msgObj);

$xp("msgdiv").appendChild(bodyObj);if(time !='') t=setTimeout("CloseMsg()",time);elset=setTimeout("CloseMsg()",3000);//默认三秒后自动消失returnfalse;

}//移除对象function CloseMsg(){

$xp("msgdiv").removeChild($xp("msgbody"));

document.body.removeChild($xp("msgdiv"));

document.body.removeChild($xp("maskdiv"));

clearTimeout(t);//停止计时器t =null;if(argl>3)

{funcf();}//执行外部传入的函数}//判断浏览器类型function CheckBrowser(){varcb ="Unknown";if(window.ActiveXObject){

cb="IE";

}elseif(navigator.userAgent.toLowerCase().indexOf("Firefox") != -1){

cb="Firefox";

}elseif((typeofdocument.implementation !="undefined") && (typeofdocument.implementation.createDocument !="undefined") && (typeofHTMLDocument !="undefined")){

cb="Mozilla";

}elseif(navigator.userAgent.toLowerCase().indexOf("Opera") != -1){

cb="Opera";

}returncb;

}

四:项目代码打包下载 点击下载程序源码

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有