htmlcss和js原生写一个模态弹出框,顺便解决父元素半透明子元素不透明效果

Posted 风雨飘飘飘啊飘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了htmlcss和js原生写一个模态弹出框,顺便解决父元素半透明子元素不透明效果相关的知识,希望对你有一定的参考价值。

模态框:

html部分:

<!-- 按钮 -->
    <button id="box" onclick="pop_box()">弹出框</button>
    <!-- 弹出模态框 -->
    <div class="div-container" id="div-container" style="display: none;">
        <div class="div-child-container">
            <div class="div-child">
                <span>hhhhh</span>
                <div class="my-btn">
                    <button id="cancleBtn" onclick="cancle()">取消</button>
                    <button id="confrim" onclick="confrim()">确认</button>
                </div>
            </div>
        </div>
    </div>

css部分:

<style type="text/css">
        #box{
            width: 80px;
            height: 40px;
            background: #fd7430;
            border:none;
            border-radius: 5px;
            outline: none;
            color: #fff;
        }

        .div-container{
            position: fixed;
            top: 0%;
            width: 100%;
            height: 100%;
            z-index:200;
            background: rgba(0,0,0,0.5) !important;/* 兼容ie几不知道,好像ie5 */
            background:#000;
            filter:Alpha(opacity=60);
        }
        /*设置div-child的父元素主要是将要此元素的父元素透明特性继承过来,故div-child不会半透明,而是不透明,解决了父元素透明,子元素也透明的bug */
        .div-child-container{
            position: relative;
            width: 400px;
            height: 200px;
            margin: auto;
            top: 30%;
            background: #fff;
            z-index: 250; /*z-index要放在父元素之上 */
        }

        .div-child{
            width: 400px;
            height: 200px;
            margin: auto;
            background: #fff;
            z-index: 300; /*z-index要放在父元素之上 */
            text-align: center;
        }

        .div-child span{
            position: relative;
            top: 40px;
        }

        .div-child .my-btn{
            margin-top: 80px;
        }
        .div-child .my-btn button{
            width: 80px;
            height: 40px;
            background:#fd7430;
            border: none;
            border-radius: 5px;
            color: #fff;
            outline: none;
        }

        .div-child .my-btn button:first-child(){
            margin-right: 20px;
        }
    </style>

javascript

<script type="text/javascript">
        /*按钮弹出模态框*/
        function pop_box(){
            var container = document.getElementById(‘div-container‘);
            container.style.display="block";
        }

        /*取消事件*/
        function cancle(){
            var container = document.getElementById(‘div-container‘);
            container.style.display="none";
        }

        /*确认事件,因为现在没有确认事件,就将弹出框隐藏*/
        function confrim(){
            var container = document.getElementById(‘div-container‘);
            container.style.display="none";
        }
    </script>

 

以上是关于htmlcss和js原生写一个模态弹出框,顺便解决父元素半透明子元素不透明效果的主要内容,如果未能解决你的问题,请参考以下文章

做一个vue模态弹出框如何

完美解决vue项目中弹出框滑动时,内部页面也跟着滑动问题

clipboard.js在弹出框中无法复制的问题

React、Jest 和 Material-UI:如何测试以模态或弹出框呈现的内容

presentViewController 不隐藏弹出框,弹出框出现在呈现的模态视图上

iPad 故事板应用程序 - 弹出框和模态代表