html、css和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>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值