自定义弹出框 酷毙了

<html> 
<head> 
<title>JS弹出一个网页对话框,后面全变灰,并不可用。</title> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<style type="text/css"> 
*{margin:0;padding:0;} 
</style> 
</head> 
<body> 
JS弹出一个网页对话框,后面全变灰,并不可用。思路:一个覆盖整个页面的层,设置透明度0 
    <p>测试</p><p>测试</p><p>测试</p><p>测试</p><p>测试</p><p>测试</p><p>测试</p> 
    <p>测试</p><p>测试</p><p>测试</p><p>测试</p><p>测试</p><p>测试</p><p>测试</p><p>测试</p> 
    <input type="button" value="点击这里" onClick="sAlert('测试效果<br/>嗯!效果还不错!');" /> 
     
<script type="text/javascript" language="javascript"> 
function sAlert(str){ 
var msgw,msgh,bordercolor; 
msgw=400;//提示窗口的宽度 
msgh=300;//提示窗口的高度 
titleheight=25//提示窗口标题高度 
bordercolor="#336699";//提示窗口的边框颜色 
titlecolor="#99CCFF";//提示窗口的标题颜色 
var sWidth,sHeight; 
sWidth=document.body.offsetWidth;//浏览器工作区域内页面宽度 或使用 screen.width//屏幕的宽度 
sHeight=screen.height;//屏幕高度(垂直分辨率) 
//背景层(大小与窗口有效区域相同,即当弹出对话框时,背景显示为放射状透明灰色) 
var bgObj=document.createElement("div");//创建一个div对象(背景层) //动态创建元素,这里创建的是 div 
//定义div属性,即相当于(相当于,但确不是,必须对对象属性进行定义 
//<div id="bgDiv" style="position:absolute; top:0; background-color:#777; filter:progid:DXImagesTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75); opacity:0.6; left:0; width:918px; height:768px; z-index:10000;"></div> 
bgObj.setAttribute('id','bgDiv'); 
bgObj.style.position="absolute"; 
bgObj.style.top="0"; 
bgObj.style.background="#777"; 
bgObj.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75"; 
bgObj.style.opacity="0.6"; 
bgObj.style.left="0"; 
bgObj.style.width=sWidth + "px"; 
bgObj.style.height=sHeight + "px"; 
bgObj.style.zIndex = "10000"; 
document.body.appendChild(bgObj);//在body内添加该div对象 
//创建一个div对象(提示框层) 
var msgObj=document.createElement("div") 
//定义div属性,即相当于 
//<div id="msgDiv" align="center" style="background-color:white; border:1px solid #336699; position:absolute; left:50%; top:50%; font:12px/1.6em Verdana,Geneva,Arial,Helvetica,sans-serif; margin-left:-225px; margin-top:npx; width:400px; height:100px; text-align:center; line-height:25px; z-index:100001;"></div> 
msgObj.setAttribute("id","msgDiv"); 
msgObj.setAttribute("align","center"); 
msgObj.style.background="white"; 
msgObj.style.border="1px solid " + bordercolor; 
msgObj.style.position = "absolute"; 
msgObj.style.left = "50%"; 
msgObj.style.top = "50%"; 
msgObj.style.font="12px/1.6em Verdana, Geneva, Arial, Helvetica, sans-serif"; 
msgObj.style.marginLeft = "-225px" ; 
msgObj.style.marginTop = -75+document.documentElement.scrollTop+"px"; 
msgObj.style.width = msgw + "px"; 
msgObj.style.height =msgh + "px"; 
msgObj.style.textAlign = "center"; 
msgObj.style.lineHeight ="25px"; 
msgObj.style.zIndex = "10001"; 
var title=document.createElement("h4");//创建一个h4对象(提示框标题栏) 
//定义h4的属性,即相当于 
//<h4 id="msgTitle" align="right" style="margin:0; padding:3px; background-color:#336699; filter:progid:DXImageTransform.Microsoft.Alpha(startX=20, startY=20, finishX=100, finishY=100,style=1,opacity=75,finishOpacity=100); opacity:0.75; border:1px solid #336699; height:18px; font:12px Verdana,Geneva,Arial,Helvetica,sans-serif; color:white; cursor:pointer;" οnclick="">关闭</h4> 
title.setAttribute("id","msgTitle"); 
title.setAttribute("align","right"); 
title.style.margin="0"; 
title.style.padding="3px"; 
title.style.background=bordercolor; 
title.style.filter="progid:DXImageTransform.Microsoft.Alpha(startX=20, startY=20, finishX=100, finishY=100,style=1,opacity=75,finishOpacity=100);"; 
title.style.opacity="0.75"; 
title.style.border="1px solid " + bordercolor; 
title.style.height="18px"; 
title.style.font="12px Verdana, Geneva, Arial, Helvetica, sans-serif"; 
title.style.color="white"; 
title.style.cursor="pointer"; 
title.innerHTML="关闭"; 
title.οnclick=removeObj; 
var button=document.createElement("input");//创建一个input对象(提示框按钮) 
//定义input的属性,即相当于 
//<input type="button" align="center" style="width:100px; align:center; margin-left:250px; margin-bottom:10px;" value="关闭"> 
button.setAttribute("type","button"); 
button.setAttribute("value","关闭"); 
button.style.width="60px"; 
button.style.align="center"; 
button.style.marginLeft="250px"; 
button.style.marginBottom="10px"; 
button.style.background=bordercolor; 
button.style.border="1px solid "+ bordercolor; 
button.style.color="white"; 
button.οnclick=removeObj; 
function removeObj(){//点击标题栏触发的事件 
   document.body.removeChild(bgObj);//删除背景层Div 
   document.getElementById("msgDiv").removeChild(title);//删除提示框的标题栏 
   document.body.removeChild(msgObj);//删除提示框层 

document.body.appendChild(msgObj);//在body内添加提示框div对象msgObj 
document.getElementById("msgDiv").appendChild(title);//在提示框div中添加标题栏对象title 
var txt=document.createElement("p");//创建一个p对象(提示框提示信息) 
//定义p的属性,即相当于 
//<p style="margin:1em 0;" id="msgTxt">测试效果</p> 
txt.style.margin="1em 0" 
txt.setAttribute("id","msgTxt"); 
txt.innerHTML=str;//来源于函数调用时的参数值 
document.getElementById("msgDiv").appendChild(txt);//在提示框div中添加提示信息对象txt 
document.getElementById("msgDiv").appendChild(button);//在提示框div中添加按钮对象button 

</script> 
</body> 

</html>


====================================================================================================================================

第二种


<!DOCTYPE html><html dir="ltr" lang="zh-CN"><head><meta charset="UTF-8"/>
<title>alertM</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-16707266-2']);
_gaq.push(['_trackPageview']);
_gaq.push(['_trackPageLoadTime']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<script>
$.fn.drag=function(opt){
opt=opt?opt:this;
$(this).each(function(){
this.onselectstart=function(){return false};
if($.browser.mozilla)
this.addEventListener('DOMMouseScroll',function(e){e.preventDefault()},false);
else
this.onmousewheel=function(){return false};
var $drag=$(opt);
var w=$(window).width()-$drag.width()-4;
var c=$drag.offset().top-$(window).scrollTop();
var scroll=function(){$drag.stop(true,false).animate({top:c+$(window).scrollTop()})};
$(this).css('cursor','move').mousedown(function(e){
var st=$(window).scrollTop();
var t=st+4;
var u=st+$(window).height()-$drag.height()-4;
var x=e.pageX-$drag.fadeTo('fast',0.6).offset().left;
var y=e.pageY-$drag.offset().top-st; 
$(document).mousemove(function(e){
var cx=e.clientX-x;
var cy=e.clientY-y;
c=$drag.css({left:cx<4?4:(cx>w?w:cx),top:cy>u?u:(cy<t?t:cy)}).offset().top-$(window).scrollTop();
}).mouseup(function(){
$drag.fadeTo('fast',1);
$(this).unbind('mousemove').unbind('mouseup');
});
return false;
})
$(window).bind('scroll',scroll)
});
return $(this);
}
var amrt=false;
function alertM(content,opt){
opt= $.extend({
time:4000,
title:'提示',
width:400,
height:'auto',
btnC:true,
btnY:true,
btnYT:'确定',
btnN:false,
btnNT:'取消',
cF:function(){},
yF:function(){},
nF:function(){},
rF:function(){}
},opt||{});
var w={
height: $(document).height(),
left: $(window).width()/2-opt.width/2,
top: $(window).height()/2+$(window).scrollTop()
};
opt.h=function(){
$('<div id="hbg" style="height:'+w.height+'px;"></div>').appendTo('body').fadeTo('fast',0.6);
return opt;
}
opt.s=function(){
var str=['<div id="alertM" style="left:',w.left,'px;height:',opt.height,'px;width:',opt.width,'px;overflow:hidden"><h5 id="alertT">',opt.title,'</h5>'];
if(opt.btnC)
str.push('<a id="alertR" title="关闭" href="javascript:void(0)">&times;</a>');
str.push('<div id="alertP">',content,'</div>');
if(opt.btnY||opt.btnN){
str.push('<div id="alertBtns">');
if(opt.btnY)
str.push('<a id="alertY" href="javascript:void(0)">',opt.btnYT,'</a>');
if(opt.btnN)
str.push('<a id="alertN" href="javascript:void(0)">',opt.btnNT,'</a>');
str.push('</div>');
}
str.push('</div>');
w.top=w.top-$(str.join('')).appendTo('body').height()/2-99;
$('#alertM').css('top',w.top);
return opt;
}
opt.a=function(){
$('#alertM').animate({top:w.top+50,opacity:'show'},opt.b)
}
opt.b=function(){
$('#alertM').show().css('top',w.top+50);
$('#alertT').drag('#alertM');
$('#alertR').click(function(){
if(opt.cF()!=false)
opt.r()
});
$('#alertY').click(function(){
if(opt.yF()!=false)
opt.r();
});
$('#alertN').click(function(){
if(opt.nF()!=false)
opt.r();
});
}
if($('#alertM').length>0){
$('#alertM').remove();
opt.s().b();
}else
opt.h().s().a();
if(amrt);
clearTimeout(amrt);
amrt=false;
opt.r=function(){
$('#alertM').animate({top:w.top+100,opacity:'hide'},function(){
$('#hbg').fadeOut(function(){
$(this).remove();
opt.rF();
});
$(this).remove();
});
if(amrt);
clearTimeout(amrt);
amrt=false;
return opt;
}
if (!isNaN(opt.time)) {
amrt=setTimeout(function(){opt.r()}, opt.time);
}
}
</script>
<style type="text/css">
#alertM,#alertT,#alertR,#alertP,#alertBtns{
margin:0;
padding:0;
font-size:14px;
line-height:24px;
font-family:arial,sans-serif;
text-align:left
}
#alertR,#alertBtns a{
text-decoration:none;
text-shadow:0px 1px 1px #000;
}
#hbg{
width:100%;
position:absolute;
background:#000;
z-index:998;
top:0;
left:0;
height:2000px;
display:none;
}
#alertM{
position:absolute;
top:200px;
background:#fff;
z-index:999;
box-shadow:0px 0px 24px #000;
border-radius:12px;
width:400px;
height:auto;
left:600px;
border:1px #ccc solid;
display:none;
}
#alertT{
margin:4px;
padding:0 16px;
background:#0398e1;
color:#fff;
text-shadow:0px 1px 1px #000;
background-image:-moz-linear-gradient(top, #03b3f6, #0374c6);
background-image:-webkit-gradient(linear,left top, left bottom, color-stop(0, #03b3f6),color-stop(1, #0374c6));
border:1px #16a8fc solid;
border-radius:8px;
box-shadow:0px 1px 2px rgba(0,0,0,0.8);
}
#alertP{
padding:12px;
}
#alertR{
font-size:24px;
float:right;
margin:-32px 8px 0 0;
padding:4px;
color:#72d5fb;
text-shadow:0px 1px 1px #000;
font-weight:bold;
-webkit-transform: rotate(-360deg);
-moz-transform: rotate(-360deg);
-o-transform: rotate(-360deg);
transform: rotate(-360deg);
-webkit-transition: -webkit-transform 0.6s ease-out;
-moz-transition: -moz-transform 0.6s ease-out;
-o-transition: -o-transform 0.6s ease-out;
transition: transform 0.6s ease-out;
}
#alertR:hover{
color:#fff;
-webkit-transform: rotate(360deg);
-moz-transform: rotate(360deg);
-o-transform: rotate(360deg);
transform: rotate(360deg);
}
#alertR:active{
text-shadow:0px 0px 1px #000;
}
#alertBtns{
text-align:right;
}
#alertBtns a{
margin:8px;
padding:0 24px;
color:#000;
background: #EEE;
text-shadow: 0px 1px 1px white;
background-image: -moz-linear-gradient(top, #fff, #ccc);
background-image: -webkit-gradient(linear,left top, left bottom, color-stop(0, #fff),color-stop(1, #ccc));
border: 1px #E6E6E6 solid;
border-radius: 4px;
display: inline-block;
box-shadow: 0px 0px 2px rgba(0,0,0,0.8);
}
#alertBtns a:hover{
background: #ccc;
background-image: -moz-linear-gradient(top, #f6f6f6,#c6c6c6);
background-image: -webkit-gradient(linear,left top, left bottom, color-stop(0, #f6f6f6),color-stop(1, #c6c6c6));
box-shadow: 0px 0px 3px rgba(0,0,0,1);
border: 1px #ddd solid;
}
#alertBtns a:active{
background: #bbb;
background-image: -moz-linear-gradient(top, #f3f3f3,#bbb);
background-image: -webkit-gradient(linear,left top, left bottom, color-stop(0, #f3f3f3),color-stop(1, #bbb));
box-shadow: 0px 0px 2px rgba(0,0,0,0.6);
border: 1px #aaa solid;
}
</style>
</head>


<body style="background:#999">
<div style="width:1000px;height:2000px;background:#fff;margin:0 auto">
<a href="javascript:void(0)" id="alm">alertM</a>
<!-- <div id="hbg"></div>
<div id="alertM">
<h5 id="alertT">提示</h5>
<a id="alertR" title="关闭" href="javascript:void(0)">&times;</a>
<p id="alertP">测试</p>
<div id="alertBtns">
<a id="alertY" title="确认" href="javascript:void(0)">确认</a>
<a id="alertN" title="取消" href="javascript:void(0)">取消</a>
</div>
</div> -->
</div>
<script>
$(function(){
$('#alm').click(function(){
alertM('测试',{time:'y',yF:function(){alertM('1',{yF:function(){alertM('2',{time:'y'});return false}});return false}});
})
})
</script>
</body>


</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值