【JAVASCRIPT】JavaScript----模拟对话框练习【转】

设计思路:先创建一个满浏览器的层,设定透明度,有遮挡效果,然后再创建一个层(Zindex》遮挡层的Zindex),显示对话框内容

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
        function sAlert(str) {
            var msgw, msgh, bordercolor;
            msgw = 300; //提示窗口的宽度
            msgh = 200; //提示窗口的高度
            titleheight = 25; //提示窗口标题高度
            bordercolor = "#FF3C00"; //提示窗口的边框颜色
            titlecolor = "#D2CECE"; //提示窗口的标题颜色

            var sWidth, sHeight;
            //sWidth=document.body.offsetWidht;//得出当前屏幕的宽
            sWidth = document.body.clientWidth; //body对象宽度

            //sHeight=screen.height;//得到当前屏幕的高
            //sHeight=document.body.clientHeight;//body对象高度
            if (window.innerHeight && window.scrollMaxY) {
                sHeight = window.innerHeight + window.scrollMaxY;
            }
            else if (document.body.scrollHeight > document.body.offsetHeight) {
                sHeight = document.body.scrollHeight;
            }
            else {
                sHeight = document.body.offsetHeight;
            } //以上得到整个屏幕的高


            var bgObj = document.createElement("div"); //创建一个div对象
            bgObj.setAttribute("id", "bgDiv"); //可用bgObj.id="bgDiv"的方法,是为div制定属性值
            bgObj.style.position = "absolute"; //把bgDiv这个div绝对定位
            bgObj.style.top = "0"; //顶部为0
            bgObj.style.background = "#777"; //北京颜色
            bgObj.style.filter = "progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75)"; //ie浏览器透明度设置
            bgObj.style.opacity = "0.6"; //透明度(火狐中)
            bgObj.style.left = "0"; //左边为0
            bgObj.style.width = sWidth + "px"; //宽(上面得到的屏幕宽度)
            bgObj.style.height = sHeight + "px"; //高(上面得到的屏幕高度)
            bgObj.style.zIndex = "100"; //层的z轴位置
            document.body.appendChild(bgObj);

            var msgObj = document.createElement("div"); //创建一个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 = "35%"; //从左侧开始位置
            msgObj.style.top = "30%"; //从上部开始位置
            msgObj.style.font = "12px/1.6em Verdana,Geneva,Arial,Helvetica,sans-serif"; //字体属性
            msgObj.style.width = msgw + "px"; //提示框的宽
            msgObj.style.height = msgh + "px";
            msgObj.style.textAlign = "center";
            msgObj.style.lineHeight = "25px"; //行间距
            msgObj.style.zIndex = "101"; //层的z轴位置

            var title = document.createElement("h4"); //创建一个h4对象
            title.setAttribute("id", "msgTitle"); //为h4对象添加标题
            title.setAttribute("align", "right"); //文字对齐方式
            title.style.margin = "0"; //浮动
            title.style.padding = "3px"; //浮动
            title.style.background = titlecolor; //背景颜色
            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.height = "25px";
            title.style.font = "12px Verdana,Geneva,Arial,Helvetica,sans-serif"; //字体属性
            title.style.color = "white";
            title.style.cursor = "pointer";
            title.innerHTML = "<a href=\"#\">关闭</a>"; //显示文字
            title.onclick = function () {
                document.body.removeChild(bgObj); //移出遮罩层
                document.getElementById("msgDiv").removeChild(title); //在提示框移除标题
                document.body.removeChild(msgObj); //移除提示框
            }
            document.body.appendChild(msgObj); //在body中划出提示框层
            document.getElementById("msgDiv").appendChild(title); //在提示框中增加标题
            var txt = document.createElement("p");
            txt.style.margin = "1em 0"; //文本浮动
            txt.setAttribute("id", "msgTxt");
            txt.innerHTML = str;
            document.getElementById("msgDiv").appendChild(txt);

        }
    
    </script>
</head>
<body>
<a href="#" onclick="sAlert('<a href=http://www.baidu.com>测试效果</a>');">点击测试</a>
<input type="button" value="getSth" onclick="alert(window.innerHeight)" />
</body>
</html>

posted @ 2012-08-07 16:26  net小伙  阅读(320)  评论(0编辑  收藏  举报