사용자:BANIP/낙서장
<!DOCTYPE html> <html lang="en"> <head>
<meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title>
</head> <body>
<style> .modal-primary-wrapper { --var--header-bg-color: hsl(238 20% 30%); position: fixed; z-index: 9999; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); } /* .modal-primary-wrapper 하위요소 스크롤바 지정 */ .modal-primary-wrapper *::-webkit-scrollbar { width: 4px; height: 4px; background-color: #fff; } .modal-primary-wrapper *::-webkit-scrollbar-thumb { background-color: var(--var--header-bg-color); border-radius: 4px; } .modal-primary-wrapper .modal { position: absolute; overflow: hidden; transform: translate(-50%, -50%); top: 50%; left: 50%; max-height: 80%; min-width: 250px; max-width: 800px; background-color: white; box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); display: grid; grid-template-rows: 40px 1fr 40px; } .modal-primary-wrapper .header { height: 40px; background-color: var(--var--header-bg-color); border-bottom: 1px solid #ddd; color:#fff; } .modal-primary-wrapper .title { float: left; padding: 10px; font-size: 20px; font-weight: bold; } .modal-primary-wrapper .content { overflow: auto; padding:8px; background: #edf6fc; } .modal-primary-wrapper .footer { border-top: 1px solid #ddd; display: flex; position: relative; align-items: center; justify-content: space-around; } .modal-primary-wrapper .footer > .btn { width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; cursor: pointer; transition: background 0.2s; background: #fff; } .modal-primary-wrapper .footer > .btn:hover { background: #eee; } .modal-primary-wrapper .footer > .btn:not(:last-child) { border-right: 1px solid #ddd; } </style>
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script> const createModal = function(option){
var resolve = function(){} var reject = function(){} var content = option.content || "동의하시겠습니까?" var header = option.header || "모달창" var onModalOpen = option.onModalOpen || function(){}
var $modal = $(`
`);
var behaive = { open: function(){ onModalOpen($modal); $modal.fadeIn(); return new Promise(function(thisResolve,thisReject){ resolve = thisResolve; reject = thisReject; }) }, close: function(){ $modal.fadeOut() reject('취소됨'); } }
$modal.find(".modal > .content").html(content); $modal.find(".modal > .header > .title").html(header);
$modal.find(".btn-accept").on("click",function(){ resolve(); }) $modal.find(".btn-close, .modal-primary-wrapper").on("click",function(){ behaive.close(); }) $(document.body).append($modal);
return behaive.open(); }
createModal({ header: '업로드 하시겠습니까?', content: 'test', }) .then(function(result){ console.log(result) }).catch(function(){})
</script>
</body> </html>