日期:2014-05-17 浏览次数:20828 次
用CSS来控制DIV的属性,辅以JavaScript响应事件,就可以实现类似于桌面UI的对话框效果。
1. 基本原理
基本原理就是在网页里添加2个浮动的层,一个叫dialog,用于包含对话框的内容;另一个叫mask,用于模拟灰化。当mask层浮动时,位于mask层下的网页内容都不可以被选中。由于mask层是灰色、半透明的,所以mask层起到灰化背景、模式化的效果。
mask: 灰色 / 半透明 / zindex = 100 / 与屏幕同大小
dialog: 白色 / zindex = 101
<style type="text/css"> #mask { float:left; width: 643px; z-index: 100; display: inline; position:absolute; left: 0; height: 300px; background-color: #CCCCCC; overflow: hidden; top: 0; opacity: 0.2; FILTER: alpha(opacity=20); visibility: visible; } #dialog { float:left; width: 200px; z-index: 101; display: inline; position:absolute; height: 150px; background-color: #FFFFCC; overflow: hidden; visibility: visible; left: 100px; } </style>
<div id="mask"></div> <div id="dialog"></div>
2. 弹出对话框
css的visibility用于控制其显示或者隐藏, left, top用于控制其位置, width, height控制其大小(BOX模型)。显然,在通常状态下,把mask和dialog设置为hidden;在需要弹出效果时,把mask和dialog设置为visible即可实现前述的模式对话框效果。【注】其他属性如float, display也要做出正确设置,模仿例
<script> function showDialog() { document.getElementById("mask").style.visibility="visible"; document.getElementById("dialog").style.visibility="visible"; } function hideDialog() { document.getElementById("mask").style.visibility="hidden"; document.getElementById("dialog").style.visibility="hidden"; } </script>