JSFiddle - React, Tailwind, and code Playground
HTML
<div class="div_frame">
<div class="list_title">To-Do List</div>
<div class="list_in">
<input class="list_input" id="list_input" type="text" placeholder="輸入代辦事項。。。">
<select class="select_type" id="select_type" onchange="select_type()">
<option style="background:#ffffffa3;" value="normal">一般</option>
<option style="background:#ffd561a3;" value="important">重要</option>
<option style="background:#ff7d7da3;" value="urgent">緊急</option>
</select>
<button class="list_btn" onclick="add_list()">add</button>
</div>
<div class="list_out">
<ul class="list_ul" id="list_ul">
<!-- 清單位置 -->
</ul>
</div>
<div class="list_remit">
<button class="remit_btn" onclick="list_remit()">remit</button>
<button class="save_btn" onclick="list_save()">save</button>
</div>
</div>
CSS
.div_frame{
width:500px;
/*height: 500px;*/
border-radius:20px;
border:0;
background-color:#fbf470;
}
.list_title{
width: 500px;
height: 50px;
line-height: 50px;
text-align: center;
font-size: 20px;
font-family: Comic Sans MS;
/*border-style:solid;*/
}
.list_in{
width: 500px;
height: 50px;
font-size: 20px;
font-family: Comic Sans MS;
display: flex;
justify-content:center;
align-items: center;
/*border-style:solid;*/
}
.list_input{
width: 300px;
height: 30px;
border-radius: 10px 0 0 10px;
border:0;
outline:none;
font-family: Comic Sans MS , Microsoft JhengHei;
text-indent: 10px; /*輸入文字邊距*/
transition: 0.1s;
}
.list_btn{
width: 50px;
height: 30px;
box-sizing: content-box;
border-radius: 0 10px 10px 0;
border:0;
font-family: Comic Sans MS;
transition: 0.1s;
}
.list_btn:hover , .list_input:hover{
box-shadow: 0px 0px 2px 2px #b1b1b1;
z-index: 1;
}
.list_btn:active{
box-shadow: inset 0px 0px 3px 3px #b1b1b1;
}
.list_out{
width: 500px;
/*height: 300px;*/
font-size: 20px;
font-family: Comic Sans MS , Microsoft JhengHei;
display: flex;
justify-content:center;
/*border-style:solid;*/
}
.list_ul{
list-style-type:none; /*消除點*/
padding-left: 0; /*消除原本點的位置*/
}
.list_ul li{
width: 350px;
margin-top: 10px; /*li之間分隔*/
display: flex;
justify-content: flex-end;
border-bottom: 1px solid #000;
/*background:#ffffffa3;*/
}
.list_ul li span{
margin-right: auto;
/*flex: 1;*/
font-family: Comic Sans MS , Microsoft JhengHei;
}
.mark_complete{
color: red;
flex: 1;
display: none;
}
.list_ul li button{
color: red;
background-color: transparent;
border: 0;
font-family: Comic Sans MS , Microsoft JhengHei;
transition: 0.3s;
}
.list_ul li button:hover{
font-weight: bold;
transform:...
JavaScript
var sort = 0; //目前清單內容數量
if (localStorage.getItem("save_data")) {
var save_data = JSON.parse(localStorage.getItem("save_data"));
sort = save_data[0].sort;
for (var x of save_data) {
var list_ul = document.querySelector('#list_ul'); //選取ul
var creat_li = document.createElement('li'); //創建li
var creat_sapn = document.createElement('span'); //待辦事項
var creat_sapn2 = document.createElement('span'); //隱藏的✔
var creat_btn2 = document.createElement('button'); //✔按鈕
var creat_btn = document.createElement('button'); //刪除按鈕
creat_sapn.setAttribute('id', 'span' + (x.number - 1)); //新增span id=span[]
creat_sapn.textContent = x.number + '.' + x.content;
creat_btn.textContent = "X";
creat_btn.onclick = remove_list;
list_ul.append(creat_li);
creat_li.append(creat_sapn);
creat_li.append(creat_sapn2);
creat_sapn2.className = "mark_complete";
creat_sapn2.textContent = "✔";
creat_li.append(creat_btn2);
creat_btn2.onclick = mark_complete;
creat_btn2.textContent = "✔"
creat_li.append(creat_btn);
if (x.type == "normal_type") {
creat_li.className = "normal_type"
} else if (x.type == "important_type") {
creat_li.className = "important_type"
} else if (x.type == "urgent_type") {
creat_li.className = "urgent_type"
}
}
}
function add_list() {
var add_text = document.querySelector('#list_input').value; //取輸入文字
var select_type = document.querySelector('#select_type').value; //一般.重要.緊急
var list_ul = document.querySelector('#list_ul'); //選取ul
var creat_li = document.createElement('li'); //創建li
var creat_sapn = document.createElement('span'); //待辦事項
var creat_sapn2 = document.createElement('span'); //隱藏的✔
var creat_btn2 = document.createElement('button'); //✔按鈕
var creat_btn = document.createElement('button'); //刪除按鈕
creat_sapn.setAttribute('id', 'span' + (sort)); //新增span id=span[]
creat_sapn.textContent = (sort + 1).toString() + '.' +...