js 面向对象模态框

本文介绍了如何使用JavaScript创建一个具有自定义标题和消息的模态框,包括构造函数、open和close方法的实现,以及与CSS样式配合的使用示例。
摘要由CSDN通过智能技术生成

1、需要创建一个div

2、需要给div添加内容

3、需要div添加类名

4、需要写一个公共open方法

5、需要写一个close方法

代码如下:

 <style>
    .modal {
      width: 400px;
      height: 120px;
      margin: auto;
      background: #ccc;
    }

    .title {
      display: flex;
      align-items: center;
      justify-content: space-between;
    }

    .title p {
      padding-left: 10px;
    }

    .title span {
      padding-right: 10px;
    }

    .message {
      text-align: center;
    }
  </style>
<button id="login">登陆</button>
  <button id="del">删除</button>
 <script>
//构造函数模态框
    function Modal(title = '', message = '') {
//1、创建div
      this.modalBox = document.createElement('div');
//2、给div里添加内容
      this.modalBox.innerHTML = `<div class="modal">
    <div class="title"><p>${title}</p><span>X</span></div>
    <div class="message">${message}</div>
   </div> `;
//给div添加class类名
      this.modalBox.className = 'modal'
    }
//一个添加模态框的公共方法
    Modal.prototype.open = function () {
//先获取一个模态框,有则删除,没有不做任何操作
      const box = document.querySelector('.modal');
      box && box.remove()
 //把模态框添加到body里去
      document.body.append(this.modalBox);
//X号调用关闭方法
      document.querySelector('.title span').addEventListener('click', (() => {
        this.del()
      }))
    }
//关闭方法
    Modal.prototype.del = function () {
      this.modalBox.remove()
    }
//模态框的调用
    document.querySelector('#login').addEventListener('click', () => {
      const login = new Modal('抱歉', '你还没有权限');
      login.open()
    })
    document.querySelector('#del').addEventListener('click', () => {
      const login = new Modal('不好意思', '你还不能删除');
      login.open()
    })
  </script>

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值