手写alert弹框

Posted 1906859953lucas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手写alert弹框相关的知识,希望对你有一定的参考价值。

技术图片

技术图片

 

采用原生的javascript

html代码

<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<style>
.div{
	border:4px dashed #ccc;margin:130px auto;
	text-align:center;
	font-size:25px;
	width:100px;
	height:100px;
	padding:40px;
}
</style>
<script src="alert.js"></script>
<div class="div" onclick="alert(‘hello javascript!‘)">点击我</div>

  

js代码

//自定义弹框
function alert(context,title){
	//创建弹框div
	var alertFram = document.createElement("div");
	alertFram.id="alertFram";
	alertFram.style="position: absolute; width: 280px; height: 150px; left: 50%; top: 50%; margin-left: -140px; margin-top: -110px; text-align: center; line-height: 150px; z-index: 300;";
	var strHtml=‘‘;
	strHtml+=‘<div style="list-style:none;margin:0px;padding:0px;width:100%">‘;
	strHtml+=‘	 <div id="alertFramTitle" style="background:#626262;text-align:left;padding-left:20px;font-size:14px;font-weight:bold;height:25px;line-height:25px;border:1px solid #F9CADE;color:white">[中奖提醒]</div>‘;
	strHtml+=‘	 <div id="alertFramContext" style="background:#787878;text-align:center;font-size:12px;height:95px;line-height:95px;border-left:1px solid #F9CADE;border-right:1px solid #F9CADE;color:#fff">    100000     元</div>‘;
	strHtml+=‘	 <div style="background:#626262;text-align:center;font-weight:bold;height:30px;line-height:25px; border:1px solid #F9CADE;"><input type="button" value="确 定" onclick="doOk()" style="width:80px;height:20px;background:#626262;color:white;border:1px solid white;font-size:14px;line-height:20px;outline:none;margin-top: 4px"></div>‘;
	strHtml+=‘	</div>‘;
	alertFram.innerHTML = strHtml;
	//将弹框添加到页面末尾
	document.body.appendChild(alertFram);
	//title
	var alertFramTitle=document.getElementById("alertFramTitle");
	alertFramTitle.innerHTML = title || "[温馨提示]";//默认值
	//context
	var alertFramContext=document.getElementById("alertFramContext");
	alertFramContext.innerHTML = context || "";//默认值
}
//确定按钮
function doOk(){
	//移除弹框
	var x=document.getElementById("alertFram");
	x.remove();
}

  

优点:简单,非阻塞式弹框,依赖少(不需要jquery)

缺点:输入文本不能太长否则文字显示不全(因为大小固定),样式不好看(需要优化),代码修改起来困难(最好是使用面向对象的方式)

留坑,有待优化!!!

 

以上是关于手写alert弹框的主要内容,如果未能解决你的问题,请参考以下文章

怎么修改js alert弹框样式

python小工具 - alert弹框输出姓名年龄求和

手写vue弹框提示

html5 alert弹框如何去掉ip

自定义alert弹框,title不显示域名

操作JavaScript的Alert弹框