jQueryはローカルストレージ付きメモを実現
37366 ワード
先日、ローカルストレージと簡単なメモの実現に関する2つの文章を送りましたが、そのメモはページをリフレッシュしたりブラウザを消したりしてデータを開くと消えてしまいます.では、なぜ2つを結合して、データを失わないwebメモを作らないのでしょうか.だから、アップグレード版2.0彼が来た!!!
実装機能:メモ機能 を実現自動取得追加メモ時間 完了イベントと未完了イベントの数を自動的に統計する チェックボックスをオンにすると、対応するイベントは完了リスト になります.チェックボックスをオフにすると、対応するイベントは未完了リスト になります. X番をクリックすると、応答したイベントは 削除されます.メモの追加ボタンをクリックすると、入力ボックスが自動的に空になります. ページをリフレッシュまたはブラウザを閉じると、ブラウザキャッシュをクリーンアップしない限り、データは失われません.
実装効果:htmlファイル:
cssファイル:
jsファイル:
計画的に自分の生活を計画するのは成功の道の必修科目で、so、このメモはあなたが持つ価値があります!!!
実装機能:
実装効果:htmlファイル:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title> </title>
<link rel="stylesheet" href="css/index.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css">
<script src="js/jQuery.min.js"></script>
<script src="js/index.js"></script>
</head>
<body>
<div class="header">
<input type="text" placeholder=" " id="in">
<button class="btn btn-success"> </button>
</div>
<div class="con">
<div class="weiwancheng">
<p> <i class="weicount">1</i></p>
<ul>
<li>
</li>
</ul>
</div>
<div class="yiwancheng">
<p> <i class="yicount"></i></p>
<ul>
</ul>
</div>
</div>
</body>
</html>
cssファイル:
* {
margin: 0;
padding: 0;
outline: none!important;
}
html {
height: 100%;
}
body {
height: 100%;
background-image: -webkit-linear-gradient(left,#fbc2eb, #a6c1ee);
}
.header {
width: 500px;
height: 42px;
margin: 10px auto;
text-align: center;
}
.header input {
width: 300px;
height: 40px;
border: 0;
border-radius: 10px;
padding: 0 10px;
}
.header button {
height: 40px;
margin-left: 10px;
border: 0;
}
.weiwancheng,
.yiwancheng {
width: 600px;
margin: 10px auto;
}
.weicount,
.yicount {
height: 20px;
width: 20px;
border: 0;
margin-left: 20px;
padding: 5px 8px 5px 8px;
background-color: #fff;
border-radius: 50%;
}
.weiwancheng ul,
.yiwancheng ul {
width: 100%;
}
.weiwancheng ul li,
.yiwancheng ul li {
padding-left: 10px;
display: flex;
align-items: center;
list-style: none;
line-height: 30px;
width: 100%;
margin-top: 10px;
border: 0;
border-radius: 10px;
background-color: aqua;
}
.yiwancheng ul li {
background-color: #a6c1ee;
}
.content {
display: inline-block;
width: 400px;
word-wrap:break-word;
margin: 0!important;
padding: 0 10px;
}
.weiwancheng ul li em,
.yiwancheng ul li em {
margin-left: 20px;
cursor: pointer;
height: 14px;
width: 14px;
}
.weiwancheng ul li input,
.yiwancheng ul li input {
margin-top: 0;
height: 20px;
width: 20px;
}
jsファイル:
$(function () {
load();
$(".btn").on("click", function () {
if($("#in").val()==''){
alert(' !')
}else{
function getNow(s) {
return s < 10 ? '0' + s : s;
}
var myDate = new Date();
var year = myDate.getFullYear(); //
var month = myDate.getMonth() + 1; //
var date = myDate.getDate(); //
var h = myDate.getHours(); // (0-23)
var m = myDate.getMinutes(); // (0-59)
var s = myDate.getSeconds();
var now = year + '-' + getNow(month) + "-" + getNow(date) + " " + getNow(h) + ':' + getNow(m) + ":" + getNow(s);
var local = getDate();
console.log(local);
local.push({title:$("#in").val(),time:now,done:false});
saveDate(local);
load();
$("#in").val('');
}
});
$(".weiwancheng ul,.yiwancheng ul").on("click","em",function(){
var data=getDate();
var index=$(this).attr("index");
data.splice(index,1);
saveDate(data);
load();
});
$(".weiwancheng ul,.yiwancheng ul").on("click","input",function(){
var data=getDate();
var index=$(this).siblings("em").attr("index");
data[index].done=$(this).prop("checked");
saveDate(data);
load();
});
function saveDate(data){
localStorage.setItem("todolist",JSON.stringify(data))
}
function load(){
var data=getDate();
$(".weiwancheng ul,.yiwancheng ul").empty();
var todocount=0;
var donecount=0;
$.each(data,function(i,n){
if(n.done){
donecount++;
$(".yiwancheng ul").prepend(""
+n.title+""+n.time+"+i+" class='glyphicon glyphicon-remove'>")
}else{
todocount++;
$(".weiwancheng ul").prepend(""
+n.title+""+n.time+"+i+" class='glyphicon glyphicon-remove'>")
}
});
$(".weicount").text(todocount);
$(".yicount").text(donecount);
}
function getDate() {
var data = localStorage.getItem("todolist");
if (data !== null) {
return JSON.parse(data);
} else {
return [];
}
}
})
計画的に自分の生活を計画するのは成功の道の必修科目で、so、このメモはあなたが持つ価値があります!!!