JSFiddle - React, Tailwind, and code Playground

by kushmuffin

HTML

<button onclick="loginModal()">點我登入帳號</button>
<hr>
<button onclick="postModal()">點我新增貼文</button>

<div class="modal" id="login-modal">
  <div class="login">
    <div>帳號:<input type="text"></div>
    <div>密碼:<input type="password"></div>
    <hr>
    <button onclick="btn_close()" class="btn-close">關閉</button>
  </div>
</div>

<div class="modal" id="post-modal">
  <div class="content">
    <div>標題:<input type="text"></div>
    <div>內文:<textarea>密碼3345678</textarea></div>
    <hr>
    <button onclick="btn_submit()" class="btn-submit">送出</button>
  </div>
</div>

CSS

body{
  background-color: wheat;
  text-align: center;
}

/* 切換的那一層 負責遮罩部分 */
.modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
}

/* 實際的 Modal 彈出框 */
.modal > div {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: white;
  padding: 20px;
  border-radius: 5px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}

/* 按鈕 */
.btn-close,
.btn-submit
{
  margin-top: 10px;
  background-color: #f1f1f1;
  border: 1px solid #ccc;
  padding: 5px 10px;
  border-radius: 3px;
  cursor: pointer;
}

.content > div{
  display: flex;
  white-space: nowrap;
}

JavaScript

let modal = document.querySelector('#login-modal');

let close = document.querySelector('#post-modal');

function loginModal(){
	modal.style.display = 'block';
}

function postModal(){
	close.style.display = 'block';
}

function btn_close(){
	modal.style.display = 'none';
}

function btn_submit(){
	close.style.display = 'none';
}

window.onclick = function(event) {
  if (event.target == modal || event.target == close) {
    modal.style.display = "none";
    close.style.display = "none";
  }
}