JSFiddle - React, Tailwind, and code Playground
by birdie2019
HTML
<div class="container">
<h1>待辦事項</h1>
<div id="input-panel">
<input type="text" id="input" placeholder="請輸入待辦事項...">
<button class="add-btn" onclick="add()" >+</button>
</div>
</div>
<div class="container">
<ul id="list">
</ul>
<button id="export-btn">匯出</button>
</div>
CSS
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
font-size: 10px;
color: #606060;
}
body {
background-color: #FFF0DF;
}
.container {
width: 400px;
margin: 30px auto;
}
/* input-panel */
h1 {
text-align: center;
font-size: 2.4rem;
letter-spacing: 3px;
}
#input-panel {
display: flex;
justify-content: center;
margin: 10px 0;
}
#input-panel > input {
flex: 1;
padding: 10px 8px;
border-radius: 5px 0 0 5px;
border: 0;
outline: 0;
font-size: 1.5rem;
letter-spacing: 1px;
}
.add-btn {
border: 0;
width: 40px;
border-radius: 0 5px 5px 0;
font-size: 1.8rem;
font-weight: 700;
cursor: pointer;
background-color: #546A76;
color: #fff;
}
/* list */
#list > li {
display: flex;
justify-content: space-between;
background-color: rgba(255, 255, 255, 0.7);
padding: 10px 8px;
margin-bottom: 8px;
border-radius: 5px;
}
#list > li > span {
font-size: 1.5rem;
letter-spacing: 1px;
}
#list > li > button {
background-color: transparent;
border: 0;
cursor: pointer;
font-size: 1.8rem;
font-weight: 900;
transition: all 0.3s;
}
#list > li > button:hover {
color: #FA829C;
transform: scale(1.3);
}
/* export-btn */
#export-btn {
background-color: #8E6F64;
border: 0;
color: #fff;
border: 1px solid #AC8172;
padding: 4px 20px 4px 4px;
font-size: 1.5rem;
letter-spacing: 1px;
border-radius: 5px;
position: relative;
margin-top: 10px;
cursor: pointer;
transition: all 0.3s;
}
#export-btn:hover {
background-color: #8A5946;
}
#export-btn::before {
content: '';
position: absolute;
width: 6px;
height: 8px;
background-color: #fff;
top: 45%;
right: 9px;
}
#export-btn::after {
content: '';
position: absolute;
top: 25%;
right: 6px;
border-bottom: 6px solid #fff;
border-right: 6px solid transparent;
border-left: 6px solid transparent;
}
JavaScript
function add() {
var input = document.getElementById('input');
var list = document.getElementById('list');
var li = document.createElement('li');
var span = document.createElement('span');
var btn = document.createElement('button');
list.append(li);
console.log(li);
li.append(span);
li.append(btn);
btn.onclick = deleteLi;
btn.textContent = 'x';
console.log(list);
var inputValue = input.value;
console.log(inputValue);
span.textContent = inputValue;
input.value = '';
}
function deleteLi() {
var yes = confirm('確定要刪除嗎?');
if (yes) {
event.target.parentElement.remove();
}
}
var exportBtn = document.getElementById('export-btn');
exportBtn.onclick = exportList;
function exportList() {
var list = document.getElementById('list').children;
var text = '';
var num = 1;
for (var item of list) {
text = text + num.toString() + '.' + item.children[0].textContent + ` `;
num = num + 1;
}
alert('今日待辦:' + text);
}