js实现一个弹窗div

js实现一个弹窗div

网上搜索了半天,奈何没一个满意的,最后还得亲自敲一下,哎~

问题描述

想实现一个这样的功能,点击一个删除按钮后,在当前页面弹出一个对话框,提示确定或取消,如果点击确定,则删除成功,如果点击取消则取消删除。

如下:
在这里插入图片描述
点击后的弹框
在这里插入图片描述

原理

1、就是在当前页面的body上添加一个div
2、然后将此div的position设置为fixed,让它盖在body上
3、然后给这个div一个颜色,调节透明度
4、将自己做好的弹框div居中放进去,并将取消按钮和确定按钮放到这个div中
5、给取消按钮和确定按钮添加点击事件

代码

js

该函数是用来创建上面原理中的所有东西的,业务代码自己根据要求添加。

function alertDiv(){
    //创建div
    let alertBelowDiv = document.createElement("div");//创建最下面的div
    let alertContentDiv = document.createElement("div");//创建呈现内容的白色div
    let alertTextDiv = document.createElement("div");//创建文字div
    let alertSubmitDiv = document.createElement("div");//创建确定div
    let alertCancelDiv = document.createElement("div");//创建取消div

    //获取body
    let body = document.body;
    //添加div
    body.appendChild(alertBelowDiv);
    alertBelowDiv.appendChild(alertContentDiv);
    alertContentDiv.appendChild(alertTextDiv);
    alertContentDiv.appendChild(alertCancelDiv);
    alertContentDiv.appendChild(alertSubmitDiv);

    alertBelowDiv.className="alertBelowDiv";
    alertContentDiv.className="alertContentDiv";
    alertTextDiv.className="alertTextDiv";
    alertCancelDiv.className="alertCancelDiv";
    alertSubmitDiv.className="alertSubmitDiv";

    alertTextDiv.innerHTML="确定当前操作?";
    alertCancelDiv.innerHTML="取消";
    alertSubmitDiv.innerHTML="确定";

    //添加点击函数
    alertCancelDiv.onclick=function (){
        this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);
    }

    alertSubmitDiv.onclick=function (){
        //业务代码执行部分
        this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);
    }

}

css

*{
    margin: 0;
    padding: 0;
}
html,body{
    height: 100%;
    width: 100%;
}
		/*最底下的灰色div*/
.alertBelowDiv{
    width: 100%;
    height: 100%;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 1;
    background-color: rgba(100, 100, 100, 0.8);

    /*将内容居中*/
    align-items: center;
    display: -webkit-flex;
    justify-content: center;
}
/*白色确定框*/
.alertContentDiv{
    width: 25%;
    height: 30%;
    background-color: white;
    border-radius: 5%;
}
/*展示文字部分*/
.alertTextDiv{

    width: 100%;
    height: 10%;
    margin: 15% auto;
    text-align: center;
    font-size: x-large;
    font-weight: 600;

}
/*取消按钮*/
.alertCancelDiv{
    float: left;
    width: 18%;
    height: 15%;
    background-color: lightslategrey;
    border-radius: 15%;
    font-weight: 600;
    color: #fff;
    align-items: center;
    display: -webkit-flex;
    justify-content: center;
    margin-left: 15%;

}

/*确定按钮*/
.alertSubmitDiv{
    float: right;
    width: 18%;
    height: 15%;
    background-color: lightslategrey;
    border-radius: 15%;
    font-weight: 600;
    color: #fff;
    align-items: center;
    display: -webkit-flex;
    justify-content: center;
    margin-right: 15%;
}
  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

齊 天 大 聖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值