js动态加载的蒙板弹框

我们访问一些网站时总会遇到这种点击后,背景像被打上一层模板一样,这个是怎么做到的呢?

它是将这个弹框div独立于页面容器wrap,设置position为absolute,将其水平垂直之后都居中,设置弹框div不显示,点击页面的登录按钮时,弹框div显示,并将页面容器的opacity设置0.5,下面的代码是完全动态加载的蒙板弹框。

   window.onload = function(){
            Wrap = document.createElement("div")
            Wrap.style.height =  window.innerHeight+'px'
            Wrap.style.background='#06f'
            Wrap.innerHTML='<button id="button" onclick="ButtonClick()">确认</button>'
            document.body.appendChild(Wrap)

            Odiv = document.createElement("div")
            Odiv.style.border = "1px #ababab solid"
            Odiv.style.background = '#39f'
            Odiv.style.height = 200+'px'
            Odiv.style.width = 300+'px'
            Odiv.style.position = 'absolute'
            Odiv.style.top = '50%'
            Odiv.style.marginTop = -100 + 'px'
            Odiv.style.left = '50%'
            Odiv.style.borderRadius=5+'px'
            Odiv.style.marginLeft = -150+'px'
            Odiv.style.color = '#333'
            Odiv.style.index = 3

            document.body.appendChild(Odiv)

            Otitle = document.createElement('div')
            Left = document.createElement('div')
            ClearFixed = document.createElement('div')
            Right =  document.createElement('button')
            Left.innerHTML = '头部'
            Right.innerHTML = 'X'
            Right.setAttribute('id','Cancel')
            Left.style.float='left'
            Right.style.float = 'right'
            ClearFixed.style.clear = 'both'
            Otitle.appendChild(Left)
            Otitle.appendChild(Right)
            Otitle.appendChild(ClearFixed)
            Ocontent = document.createElement('div')
            Ocontent.innerHTML='显示内容'
            Otitle.style.padding = 10+'px'
            Otitle.style.borderBottom = '1px #ababab solid '
            Ocontent.style.padding = 10+'px'
            Odiv.appendChild(Otitle)
            Odiv.appendChild(Ocontent)
            Odiv.style.display = 'none'
        }
        function ButtonClick(){
            Odiv.style.display = 'block'
            Wrap.style.background='#ccc'
            Wrap.style.opacity='0.2'

            Cencel = document.getElementById('Cancel')
            Cencel.onclick = function(){
                Odiv.style.display = 'none'
                Wrap.style.background='#06f'
                Wrap.style.opacity='1'
            }
        }

  

 

posted @ 2017-03-07 20:51  卡迪斯上小学  阅读(404)  评论(0编辑  收藏  举报