原文地址:http://www.zishu.cn/blogview.asp?logID=658
网页全屏Alert提示效果__实例+源码   [ 2007-10-17 | 作者:zishu | 来自:本站原创]

网页全屏Alert提示效果__实例+源码,记录给自已; 



先看效果:

HTML代码

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]


代码解析:

布局:
程序代码
<body>
<span id="boxs"></span>
<a href="javascript:boxs(1);">点这里测试一下</a>
</body>


这里我放了一个空的标签,ID为boxs;当我点击链接时,我希望把一些内容塞到这个ID中;而我塞的东西就是要显示的全部内容,包括半透明的黑色背景和提示信息;


CSS:
程序代码

<style>
/*子鼠 http://www.zishu.cn*/
*{ padding:0; margin:0; font-size:12px;}
/*这里将所有HTML标签的padding和marging以及font属性全部统一*/
#bg{background:#000000;opacity: 0.5;-moz-opacity:0.5; filter:alpha(opacity=50); width:100%; height:100%;position:absolute; top:0; left:0}
/*这里是黑色背景的样式,半透明;而且用是绝对定位,用top和left可以让他在窗口中的最顶和最左;其它详细说明见注释1*/
#info{height:0px; width:0px;top:50%; left:50%;position:absolute;  line-height:1.7}
/*这个是用来定位用的;也是用绝对定位;他其实就是定位一个点用的,这个点位于窗口的正中间;*/
#center{background:#fff;border:1px solid #217AC1; width:300px; height:100px; position:absolute; margin:-50px -150px;}
/*这个是用来显示提示信息用了;背景是白色,边框为一个像素的蓝色;是用的相对于#info的绝对定位;详细见注释2*/
#center strong{ display:block; padding:2px 5px; background:#EBF4FC; color:#519FEE;}
/*这里就简单了,这行是提示信息“友情提醒”这几个字;我让它加粗,又给加了个背景和色彩;这个没有什么*/
#center p{padding:10px; text-align:center; color:#1C6FB8;}
/*这里就简单了不说了*/
</style>


注释1:前透明在IE中只能用IE的私有属性filter:alpha;而在FIREFOX中只能用-moz-opacity;OPERA现在只能用图片来作;我这里没有作;所以这个效果在OPEAR中不是半透明的;应该是黑色的;

注释2:这里最主要的功能是计算位置用的;如果这块宽度是300px;高为100PX的话;那么想要完全居中,就只能margin:-50px -150px; 50是100PX/2 ; 150是300PX/2 ; 这个地方我没有办法作成自动适应高度和宽度了; 


Javascript部分:
程序代码

<script>
function boxs(v){
 window.scrollTo(0,0);//到页面的顶部
 var bo = document.getElementsByTagName('body')[0];
 var ht = document.getElementsByTagName('html')[0];
 var boht = document.getElementById('boxs');    
 boht.innerHTML = '';
 bo.style.height='auto';
 bo.style.overflow='auto';
 ht.style.height='auto'; 
 if(v == 1){   
  bo.style.height='100%';
  bo.style.overflow='hidden';
  ht.style.height='100%';  
  boht.innerHTML = '<div id="bg"></div><div id="info"><div id="center"><strong>友情提醒:</strong><p><a href="javascript:boxs(0);">关了我吧!</a></p></div></div>';   
 }

</script>


这部分看上去比较麻烦;其它作的事很简单;
1、把一些内容塞到之前说的ID为boxs中;
2、设置标签html 和 body 的样式;

这里要说一下;
1、当浏览器为FIREFOX时,根本不用设置标签html 和 body 的样式;这样可以节约八行代码;你主要写成这样就可以了;
程序代码

<script>
function boxs(v){
 window.scrollTo(0,0);//到页面的顶部
 var boht = document.getElementById('boxs');    
 boht.innerHTML = '';
 if(v == 1){   
  boht.innerHTML = '<div id="bg"></div><div id="info"><div id="center"><strong>友情提醒:</strong><p><a href="javascript:boxs(0);">关了我吧!</a></p></div></div>';   
 }

</script>


2、当你的浏览器为IE6时;你只要设置标签body 的样式就可以了;不用设HTML标签的样式;这样可以省二行代码;

3、当你是IE7 成;只能写这个样子了;没有办法;呵呵...... 所以看上去JS会有点长;   木有办法; 


这个效果基本就是这样,每次出现时都会回到网页的顶部;

如是您还对如何居中的不是很解理,可以看一下这:全屏垂直居中的一个办法 DIV+CSS  

如果您想给提示效果加个阴影效果,您可以看一下这个:一个阴影半透明效果 DIV+CSS  
posted on 2007-12-16 19:31  Thunderdanky  阅读(363)  评论(1)    收藏  举报