请问老师哪里出了问题?
来源: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回答
同学你好!
可以通过控制台看下哪里报错:
所以将问题定位到这里:msg-footer前面需要加点.来选中
如果帮助到了你 欢迎采纳 祝学习愉快~
相似问题