请问老师哪里出了问题?

来源:3-2 自定义弹框(二)

qq_鸭绿桥第一帅哥_0

2019-07-04 11:29:15

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>a</title>
    <link rel="stylesheet" type="text/css" href="css/index1.css">
</head>

<body>
    <button id="pop">弹个框</button>
    <!--  <div class="msg__wrap">
    <div class="msg-header">
      <span>确认删除</span>
      <span class="msg-header-close-button">×</span>
    </div>
    <div class="msg-body">
      <div class="msg-body-icon">
        <div class="msg-body-icon-wrong"></div>
      </div>
      <div class="msg-body-content">是否删除</div>
    </div>
    <div class="msg-footer">
      <button class="msg-footer-btn msg-footer-cancel-button">算了吧</button>
      <button class="msg-footer-btn msg-footer-confirm-button">好的</button>
    </div>
  </div> -->
    <script type="text/javascript" src="js/shiyan.js"></script>
    <script type="text/javascript">
    document.querySelector('#pop').addEventListener('click', function() {
        new $Msg({
            content: '清空吗?'
        });
    })
    </script>
</body>

</html>



(function(window, document) {
    let Msg = function(options) {
        this._init(options);
    }
    Msg.prototype._init = function({ content = '' }) {
        this.content = content;
        this._createElement();
        this._bind([this._el,this.overlay]);
        this._show([this._el,this.overlay]);
    }
     Msg.prototype._bind=function([el,overlay]){
        const hideMsg=function(){
            el.style.transform= 'translate(-50%, -50%) scale(0, 0)';
            overlay.style.opacity=0;
            setTimeout(function(){
                document.body.removeChild(el);
                document.body.removeChild(overlay);

            },300);
        }
        const cancel=function(e){
            hideMsg();
        }
        const confirm=function(e){
            hideMsg();
        }
        overlay.addEventListener('click',cancel);
        el.querySelector('.msg-header .msg-header-close-button').addEventListener('click',cancel);
        el.querySelector('msg-footer .msg-footer-cancel-button').addEventListener('click',cancel);
        el.querySelector('msg-footer .msg-footer-confirm-button').addEventListener('click',confirm);
    }
    Msg.prototype._createElement = function() {
        let wrap = document.createElement('div');
        wrap.className = 'msg__wrap';
        wrap.innerHTML = '\
        <div class="msg-header">\
          <span>确认删除</span>\
          <span class="msg-header-close-button">×</span>\
        </div>\
        <div class="msg-body">\
          <div class="msg-body-icon">\
            <div class="msg-body-icon-wrong"></div>\
          </div>\
          <div class="msg-body-content">是否删除</div>\
        </div>\
        <div class="msg-footer">\
          <button class="msg-footer-btn msg-footer-cancel-button">算了吧</button>\
          <button class="msg-footer-btn msg-footer-confirm-button">好的</button>\
        </div>';
        let overlay=document.createElement('div');
        overlay.className='msg__overlay';
        this.overlay=overlay;
        this._el=wrap;
    }
    Msg.prototype._show=function([el,overlay]){
        document.body.appendChild(el);
        document.body.appendChild(overlay);

        setTimeout(function(){
            el.style.transform= 'translate(-50%, -50%) scale(1, 1)';
            overlay.style.opacity=1;
        })
    }
   

    window.$Msg = Msg;
})(window, document)


/* 弹出框最外层 */
.msg__wrap {
  position: fixed;
  top: 50%;
  left: 50%;
  z-index: 10;
  transition: all .3s;
  transform: translate(-50%, -50%) scale(0, 0);
  max-width: 50%;
  
  background: #fff;
  box-shadow: 0 0 10px #eee;
  font-size: 10px;
}

/* 弹出框头部 */
.msg__wrap .msg-header {
  padding: 10px 10px 0 10px;
  font-size: 1.8em;
}

.msg__wrap .msg-header .msg-header-close-button {
  float: right;
  cursor: pointer;
}

/* 弹出框中部 */
.msg__wrap .msg-body {
  padding: 10px 10px 10px 10px;
  display: flex;
}

/* 图标 */
.msg__wrap .msg-body .msg-body-icon{
  width: 80px;
}

.msg__wrap .msg-body .msg-body-icon div{
  width: 45px;
  height: 45px;
  margin: 0 auto;
  line-height: 45px;
  color: #fff;
  border-radius: 50% 50%;
  font-size: 2em;
}

.msg__wrap .msg-body .msg-body-icon .msg-body-icon-success{
  background: #32a323;
  text-align: center;
}

.msg__wrap .msg-body .msg-body-icon .msg-body-icon-success::after{
  content: "成";
}

.msg__wrap .msg-body .msg-body-icon .msg-body-icon-wrong{
  background: #ff8080;
  text-align: center;
}

.msg__wrap .msg-body .msg-body-icon .msg-body-icon-wrong::after{
  content: "误";
}

.msg__wrap .msg-body .msg-body-icon .msg-body-icon-info{
  background: #80b7ff;
  text-align: center;
}

.msg__wrap .msg-body .msg-body-icon .msg-body-icon-info::after{
  content: "注";
}

/* 内容 */
.msg__wrap .msg-body .msg-body-content{
  min-width: 200px;
  font-size: 1.5em;
  word-break: break-all;
  display: flex;
  align-items: center;
  padding-left: 10px;
  box-sizing: border-box;
}

/* 弹出框底部 */
.msg__wrap .msg-footer {
  padding: 0 10px 10px 10px;
  display: flex;
  flex-direction: row-reverse;
}

.msg__wrap .msg-footer .msg-footer-btn {
  width: 50px;
  height: 30px;
  border: 0 none;
  color: #fff;
  outline: none;
  font-size: 1em;
  border-radius: 2px;
  margin-left: 5px;
  cursor: pointer;
}

.msg__wrap .msg-footer .msg-footer-cancel-button{
  background-color: #ff3b3b;
}

.msg__wrap .msg-footer .msg-footer-cancel-button:active{
  background-color: #ff6f6f;
}

.msg__wrap .msg-footer .msg-footer-confirm-button{
  background-color: #4896f0;
}

.msg__wrap .msg-footer .msg-footer-confirm-button:active{
  background-color: #1d5fac;
}

/* 遮罩层 */
.msg__overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 5;
  background-color: rgba(0, 0, 0, .4);
  transition: all .3s;
  opacity: 0;
}


写回答

1回答

好帮手慕码

2019-07-04

同学你好!

可以通过控制台看下哪里报错:

http://img.mukewang.com/climg/5d1da9bb00017ebe04800087.jpg

所以将问题定位到这里:msg-footer前面需要加点.来选中

http://img.mukewang.com/climg/5d1da9ce00018d0f10650164.jpg

如果帮助到了你 欢迎采纳 祝学习愉快~

0

0 学习 · 3299 问题

查看课程